MUS*_*MUS 4 javascript iframe innerhtml
我正在尝试使用下面的代码获取IFrame内部HTML.
<iframe src="http://www.msn.com"
width="100%" height="100%" marginwidth="0"
scrolling="no" frameborder="0" id="divInfo"
onreadystatechange="MyFunction(this);"></iframe>
Run Code Online (Sandbox Code Playgroud)
JavaScript代码是
function MyFunction(frameObj)
{
if (frameObj.readyState == "complete")
{
alert(frameObj.document.body.innerHTML);
}
}
Run Code Online (Sandbox Code Playgroud)
但是警报显示了当前文档的html.当frmae就绪状态完成时,如何获得iframe的内部HTML.
如果我使用alert(frameObj.contentWindow.document.body.innerHTML);它给我访问被拒绝错误.
提前致谢.
拒绝访问错误是由相同的原始策略引起的.
由于您的页面托管在http://www.example.com/(例如),如果您尝试访问http://www.msn.com/上的详细信息,浏览器将不会让您,因为它们来自2个不同的域名.
但是,如果您尝试访问同一域中的数据 - 托管页面:http://www.example.com/index.html,IFrame页面:http://www.example.com/iframe.html,那么您应该能够获得内容.
有关同源策略的更多信息,请访问以下链接:http://en.wikipedia.org/wiki/Same_origin_policy
顺便说一句,您可能希望使用frameObject.contentDocument
<script type="text/javascript">
function documentIsReady(frameObject) {
alert(frameObject.contentDocument.body.innerHTML);
}
</script>
Run Code Online (Sandbox Code Playgroud)
...而且您也可以使用onload而不是onreadystatechange ...
<iframe src="iframe.html" onload="documentIsReady(this);"></iframe>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15312 次 |
| 最近记录: |