Как получить весь контент iframe?
мне нужно получить все содержимое iframe из того же домена. Весь контент означает, что я хочу все, начиная с <html>
(в том числе), не только <body>
содержание.
Содержимое изменяется после загрузки, поэтому я не могу получить его снова с сервера.
4 ответов
Я верю, что нашел лучшее решение:
var document = iframeObject.contentDocument
var serializer = new XMLSerializer();
var content = serializer.serializeToString(document);
на content
у нас есть полный контент iframe, включая DOCTYPE
элемент, который отсутствовал в предыдущих решениях. И вдобавок этот код очень короткий и чистый.
если он находится на том же домене, вы можете просто использовать
iframe.contentWindow.document.documentElement.innerHTML
чтобы получить содержимое iframe, за исключением <html>
и </html>
- тег, где
iframe = document.getElementById('iframeid');
вы можете получить литеральный источник любого файла в том же домене с Ajax, который не отображает html сначала-
//
function fetchSource(url, callback){
try{
var O= new XMLHttpRequest;
O.open("GET", url, true);
O.onreadystatechange= function(){
if(O.readyState== 4 && O.status== 200){
callback(O.responseText);
}
};
O.send(null);
}
catch(er){}
return url;
}
function printSourceCode(text){
var el= document.createElement('textarea');
el.cols= '80';
el.rows= '20';
el.value= text;
document.body.appendChild(el);
el.focus();
}
fetchSource (местоположение.href, printSourceCode);