是否可以解析iframe中显示的html网页中的标签?我试图编译代码如下,但它不起作用。


 <!DOCTYPE html>
 < HTML>
 <身体GT;

 < iframe id =“Frame”src =“Url”>< / iframe>

 < button onclick =“myFunction()”>解析它< / button>

 < p id =“demo”>< / p>

 <脚本>
 function myFunction(){
 var x = document.getElementById(“Frame”)。src.getElementByTagName(“title”);
 document.getElementById(“demo”)。innerHTML = x;
 }
 < /脚本>

 < /体>
 < / HTML>
 代码>


答案 0 :(得分:3)
您可以执行以下操作。只需记住将iframe的src更改为您实际加载的页面的URL:
<!DOCTYPE html>
<html>
<body>
<iframe id="Frame" src="sample.html"></iframe>
<button onclick="myFunction()">Parse it</button>
<p id="demo"></p>
<script>
function myFunction() {
var x;
//get the iframe object
var iframe = document.getElementById('Frame');
//cross browser solution to get the iframe document
//of the iframe
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
//if the document is not undefined
if (iframeDocument) {
//do something with the frames dom
//get the content of the title tag from the iframe
x = iframeDocument.getElementsByTagName("title")[0].innerHTML;
}
document.getElementById("demo").innerHTML = x;
}
</script>
</body>
</html>
注意:此解决方案不适用于不允许在iframe中加载原始广告的网站。如果您要将网址http://www.google.com
添加到iframe的src中,例如它会在开发者控制台中显示以下错误。
Load denied by X-Frame-Options: https://www.google.com/?gws_rd=ssl does not permit cross-origin framing.
出于同样的原因,这是您可能收到的另一个错误。我通过自己的网站(bytewarestudios.com)尝试了这个错误。
Error: Permission denied to access property "document"