0

我正在寻找一种修改iFrame属性(实际上是文本框值)的方法。它iFrame在另一个域上,我确实可以访问它。据我了解,我必须在iFrame呈现整个页面(包括)之后执行此操作。我尝试过这样的事情:

<script type="text/javascript">
$(window).load(function() {
    alert("test");
    d = document.getElementById("myframe");
    d.contentWindow.document.getElementById("frametxtbox");
});
</script>

但我总是收到以下错误:

无法调用未定义的方法“getElementById”

我还注意到在渲染之前会弹出警报iFrame,所以我认为我的脚本是在页面可以访问帧值之前执行的,因此我得到了错误。我对网络相关的编程知识很少(总是在后端工作),所以如果我的问题可能没有意义,请原谅我。

4

1 回答 1

0

如果 iframe 指向另一个域,它将受到同源策略的约束。这意味着在您尝试访问其文档之前,您必须检查 wiki 并放宽政策(查看链接了解详细信息)。之后,您需要将 ready 事件绑定到 iframe 文档,而不是您的主页文档。

$(window.frames['myframe'].document).ready(function() { alert('moo'); });

看看这是否有帮助:)

于 2012-10-30T16:19:47.063 回答