js 在iframe里面怎么给一个父窗口的text赋值啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 在iframe里面怎么给一个父窗口的text赋值啊?相关的知识,希望对你有一定的参考价值。
在框架页通过parent就可以对父窗口内元素进行操作。思路:
建两个普通html页,a.html 、b.html
## a.html code##
<input type="text" id="name" value="" />
<iframe src="b.html" width="100%" height="200"></iframe>
## b.html code##
<script type="text/javascript">
function fuck()
parent.document.getElementById('name').value='框架页向父窗口元素赋值!';
</script>
这是被框架页面!
<input type="button" value="点我一下" onclick="fuck();" /> 参考技术A iframe的话貌似不能。
你可以试试 将function方法写于公用方法里。在子页面里进行调用试试
javascript, iframe, security - 尝试从父窗口访问 js 函数时权限被拒绝
【中文标题】javascript, iframe, security - 尝试从父窗口访问 js 函数时权限被拒绝【英文标题】:javascript, iframe, security - Permission denied when tring to access a js function from parent window 【发布时间】:2011-08-30 23:20:29 【问题描述】:祝大家有美好的一天。
我有一个包含 iframe 的页面。在那个 iframe 中,我有一个名为 test() 的脚本。我需要从父窗口访问该功能。在四处询问后,我得到了这个解决方案:
<div onclick="document.getElementById('targetFrame').contentWindow.teste();">Test</div>
点击后应该运行测试功能。问题是我收到“Permission denied to access property test”错误。
对我来说这似乎是一个权限错误,所以我将 iframe 权限中加载的文件更改为 777,但没有任何结果。
注意:iframe 中加载的文件不在同一个域中。
【问题讨论】:
这个已经被问过很多次了:***.com/questions/364952/… 【参考方案1】:默认禁止访问其他域的页面,因为浏览器使用same origin policy。有几种解决方法,例如使用 location.hash 或 window.name 在框架之间进行通信。 HTML5 中最新的和标准化的是 postMessage-interface。 有跨浏览器解决方案库http://easyxdm.net/wp/。
【讨论】:
好的...我该如何更改?我在两个域上都有 root 访问权限。 这是用于 Intranet,您可以控制所有浏览器吗? 如果是这种情况,您可以在某些浏览器中禁用网络安全。搜索禁用 SOP:***.com/questions/330427/…,但通常只有丑陋的黑客存在,在浏览器上实施的安全策略是有原因的 如果我为 iframe 文件使用子域怎么办?【参考方案2】:我不确定是否可能,跨窗口(框架)通信必须在相同的域、协议和主机名中。有关详细信息,请参阅 Same origin policy for JavaScript 和 Cross domain communication with iframes
【讨论】:
以上是关于js 在iframe里面怎么给一个父窗口的text赋值啊?的主要内容,如果未能解决你的问题,请参考以下文章