2017-08-05 68 views
1

我有一個名爲test.html的HTML文件,下面是該文件的內容。使用JavaScript獲取iframe內容

<html> 
<head></head> 
<body> 
    This is the content. 
</body> 
</html> 

現在我有我想要的顯示test.html內容通過iframe中,然後配合一些內容,並做一些事情,如果它匹配的其它文件。

這是我正在嘗試,但我沒有得到的iframe數據。

<html> 
<head></head> 
<body> 
    <iframe id="myIframe" src="test.html"></iframe> 
    <script> 
     var iframe = document.getElementById("myIframe"); 
     var iframe_content = iframe.contentDocument.body.innerHTML; 
     var content = iframe_content; 

     // var content = "This is the content."; --> I want to get the iframe data here like this. Then match it with the following. 

     var find = content.match(/ is /); 
     if (find) { 
      document.write("Match Found"); 
     } else { 
      document.write("No Match!"); 
     } 
    </script> 
</body> 
</html> 

在此先感謝

+0

嘗試使用'iframe.contentWindow.document.body.innerHTML' – abagshaw

+0

這是行不通的。我也試過 'iframe.contentDocument.getElementsByTagName('body')[0] .innerHTML; iframe.contentDocument.getElementsByTagName('html')[0] innerHTML;' –

+0

iframe_content' undefined'? – abagshaw

回答

0

正如評論所說,你需要等待iframe要加載的內容。 https://developer.mozilla.org/en-US/docs/Web/Events/load

<iframe id="myIframe" src="https://stackoverflow.com/questions/45525117/get-iframe-content-by-using-javascript#"></iframe> 
 
<script> 
 
    const myFrame = document.getElementById('myIframe'); 
 
    myFrame.addEventListener('load', (evt) => { 
 
    console.log(evt.target === myFrame); 
 
    console.log(evt.target); 
 
    }); 
 
</script>