使用 JavaScript 访问跨域 iframe 元素
我的 html 页面中有一个 iframe,我想访问此 iframe 中打开的页面中的一些内容。
<table border="1" width="100%" height="100%">
<tr>
<td id = "freebase_td">
<iframe id = "freebase_frame" src="http://www.freebase.com/view/en/angelina_jolie" width="100%" height="400px"></iframe>
</td>
</tr>
</table>
在此网页的源代码中,
<h1 id="page-title">
Angelina Jolie
</h1>
我想使用 javascript 访问 id 为“page-title”的 h1 标记中的内容。这可能吗?
I have an iframe in my html page and I want to access some content from the page opened in this iframe.
<table border="1" width="100%" height="100%">
<tr>
<td id = "freebase_td">
<iframe id = "freebase_frame" src="http://www.freebase.com/view/en/angelina_jolie" width="100%" height="400px"></iframe>
</td>
</tr>
</table>
In this web page's source,
<h1 id="page-title">
Angelina Jolie
</h1>
I want to access the content in the h1 tag with id "page-title" using javascript. Could it be possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该首先阅读浏览器的同源策略。这可以防止一个源中的框架、窗口或 iframe 中的 javascript 访问不同源中的另一个框架中的内容或脚本。因此,如果您的 iframe 与脚本页面的来源不同,则它无法直接访问 iframe 的内容。
如果您拥有最新的浏览器之一并且对两个框架进行编码以进行协作(这意味着您必须控制两个框架中的 javascript 代码),则有一个名为 窗口消息传递,可用于在不同来源的框架之间传递信息。
You should first read about the browser's same-origin policy. This prevents javascript from a frame or window or iframe in one origin from accessing the content or scripts in another frame in a different origin. So, if your iframe is not the same origin as the page of your script, then it cannot directly access the iframe's contents.
If you have one of the latest browsers and you code both frames to cooperate (which means you have to control the javascript code in both frames), there is a new feature called window messaging that can be used to pass information between frames from different origins.