如何从<object>嵌入的HTML访问

How to access a <div> from the HTML embedded by <object>

本文关键字:访问 HTML object      更新时间:2023-09-26

我有一个网页,有几个<div>部分("navcol"和"maincol")。"navcol"div 包含<object data="mypage.html"> . 在mypage中.html有一些按钮,用户可以单击这些按钮来选择要插入"maincol"的页面。我需要使用 Javascript 访问主页中"maincol"的内部 HTML,这样我就可以进行插入(就像使用 iframe 一样)。有人能让我走上正轨吗?

附言。我正在使用<object>,因为我想让HTML 4.0"严格",而Iframe不在"严格"中,而是在"严格"中。

在对象元素的页面中,您可以使用以下命令访问最上面的浏览上下文:

window.top.document

所以你可以试试:

window.top.document.getElementById('maincol');

毫无疑问,仅在同源政策施加的限制范围内。

例如

<div id="mailcol">maincol</div>
<div id="navcol">
  <object data="foo.html"></object>
</div>

在 foo.html:

<button onclick="
  alert(window.top.document.getElementById('mailcol').innerHTML)
">button</button>