繁体   English   中英

如何获得iframe的全部内容?

[英]How to get WHOLE content of iframe?

我需要从同一个域获取iframe的全部内容。 整个内容意味着我希望一切都从<html> (包括)开始,而不仅仅是<body>内容。 内容在加载后被修改,因此我无法再从服务器获取它。

我相信我找到了最好的解决方案:

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');
$('input.test').click(function(){
    $('textarea.test').text($('iframe.test').contents());
});

您可以使用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(location.href,printSourceCode);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM