Ich versuche, den Quellcode aus einer URL-Webseite mit JSONP zu bekommen. Dies ist der Code:Holen Sie einen Quellcode von URL-Webseite mit JavaScript mit JSONP
<script type="text/javascript">
var your_url = '';
$(document).ready(function(){
jQuery.ajax = (function(_ajax){
var protocol = location.protocol,
hostname = location.hostname,
exRegex = RegExp(protocol + '//' + hostname),
YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?',
query = 'select * from html where url="{URL}" and xpath="*"';
function isExternal(url) {
return !exRegex.test(url) && /:\/\//.test(url);
}
return function(o) {
var url = o.url;
if (/get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url)) {
// Manipulate options so that JSONP-x request is made to YQL
o.url = YQL;
o.dataType = 'json';
o.data = {
q: query.replace(
'{URL}',
url + (o.data ?
(/\?/.test(url) ? '&' : '?') + jQuery.param(o.data)
: '')
),
format: 'xml'
};
// Since it's a JSONP request
// complete === success
if (!o.success && o.complete) {
o.success = o.complete;
delete o.complete;
}
o.success = (function(_success){
return function(data) {
if (_success) {
// Fake XHR callback.
_success.call(this, {
responseText: data.results[0]
// YQL screws with <script>s
// Get rid of them
.replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
}, 'success');
}
};
})(o.success);
}
return _ajax.apply(this, arguments);
};
})(jQuery.ajax);
$.ajax({
url: your_url,
type: 'GET',
success: function(res) {
var text = res.responseText;
//document.getElementById("contenuto").innerHTML = text;
alert(text);
}
});
});
</script>
ich mit einer Warnung der gesamten Quellcode, aus der URL gedruckt.
alert(text);
Zuerst, wie man weiß, ob der gedruckte Code der ganze Netzcode der Seite ist? Wenn ich versuche, auf diese Weise zu tun
document.getElementById("contenuto").innerHTML = text;
das ist das Ergebnis:
\ \ <'+'/ins>\ \ \ '); } ]]>
Ich habe versucht, HTML DOM zu verwenden, nur ein Element zu drucken, auf diese Weise zu tun
document.getElementById("contenuto").innerHTML = text;
var elem = text.getElementById("strip_adv").innerHTML;
document.getElementById("contenuto_1").innerHTML = elem;
}
Aber das ist der Fehler auf der JS-Konsole:
text.getElementById is not a function
Recap: Ich würde den Quellcode einer Webseite von URL erhalten, mit JSONP. Ich würde HTML-DOM aus dem zurückgegebenen Text verwenden, um nur das Element/die Klasse zu behalten, die ich brauche. Ich bin ein Neuling auf JS, ich versuche mehr zu lernen & mehr über JS.
'responsetext' kein Element ist. Sie sollten versuchen, es zu analysieren. – mok
@mok Wenn ich versuchte, mit diesem Code zu drucken document.getElementById ("contenuto"). InnerHTML = Text; Dies ist das Ergebnis ist: [screen1] (https://postimg.org/image/erjvgz9s7/) Warum? Zuerst würde ich die ganze "Zeichenfolge" (Quellcode der Seite) drucken, um zu überprüfen, ob sie vollständig ist. Aber ich kann nicht. – Jackie
Scheint, dass der Code die Seite nicht richtig analysiert. Versuchen Sie es mit einer einfachen Seite wie dieser [http://www.murgaboots.com/aboutus.html] (zufällig ausgewählt, nur als eine einfache Webseite). Wie auch immer, die Antwort ist, was ich vorher gesagt habe, du solltest den "responsetext" analysieren. – mok