How to get WHOLE content of iframe?

后端 未结 4 2037
余生分开走
余生分开走 2021-01-05 07:36

I need to get whole content of iframe from the same domain. Whole content means that I want everything starting from (including), not only &l

相关标签:
4条回答
  • 2021-01-05 08:01

    If it is on the same domain, you can just use

    iframe.contentWindow.document.documentElement.innerHTML
    

    to get the content of the iframe, except for the <html> and </html> tag, where

    iframe = document.getElementById('iframeid');
    
    0 讨论(0)
  • 2021-01-05 08:06

    You can get the literal source of any file on the same domain with Ajax, which does not render the html first-

    //

    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);

    0 讨论(0)
  • 2021-01-05 08:13

    I belive I've found the best solution:

    var document = iframeObject.contentDocument;
    var serializer = new XMLSerializer();
    var content = serializer.serializeToString(document);
    

    In content we have full iframe content, including DOCTYPE element, which was missing in previous solutions. And in addition this code is very short and clean.

    0 讨论(0)
  • 2021-01-05 08:19
    $('input.test').click(function(){
        $('textarea.test').text($('iframe.test').contents());
    });
    
    0 讨论(0)
提交回复
热议问题