在 iframe 和父级之间传递 jquery 变量
Posted
技术标签:
【中文标题】在 iframe 和父级之间传递 jquery 变量【英文标题】:Pass jquery variables between iframe and parent 【发布时间】:2011-06-09 00:24:07 【问题描述】:如何使用 jQuery 和 iframe
。从iframe
到body
和从body
到iframe
获取并传递var
。我有以下示例。如何点击iframe
中的按钮,使其在body
#test
上生效。在 iframe 中准备好 var x 怎么样。
<body>
var x = "whatever";
<div id"test"></div>
<iframe src="page.html"></iframe>
</body>
在page.html里面我有
<button>clickme</button>
<script>
var elm = $('<span>content</span>');
elm.appendTo('#test')
</script>
【问题讨论】:
请注意,根据同源策略,当两个文档来自完全相同的域时,大多数浏览器只允许在 iframe 内操作父文档。 @tdammers - 这是一个很好的观点。 是的。咬我一次。我有一个很棒的脚本,可以根据内容调整 iframe 的高度,但它只适用于测试平台,两个页面都是从 localhost 提供的:-( 谁能告诉我如何动态传递 src 的值? 【参考方案1】:$("#myid", top.document);
或
$("#myid", parent.document.body);
这将使您可以访问 IFRAME 的容器
根据:http://groups.google.com/group/jquery-en/browse_thread/thread/5997ef4a60a123af
【讨论】:
我以前用过。您能否更新您的问题以包含您的新代码? 请注意,框架必须位于同一来源才能正常工作。 en.wikipedia.org/wiki/Same_origin_policy【参考方案2】:从父母的角度来看:
var iFrameValue = $('#iframe').get(0).contentWindow.myLocalFunction();
或
var iFrameValue = $('#iframe').get(0).contentWindow.myLocalVariable;
从 iframe 的角度来看
<script type="text/javascript">
var myLocalVariable = "hello";
function myLocalFunction ()
return "hello";
</script>
【讨论】:
【参考方案3】:如果same origin poilicy 没有问题,您可以使用contentWindow
和contentDocument
属性。我已经设置了一个demo。查看code for the demo 和code for iframe。
【讨论】:
以上是关于在 iframe 和父级之间传递 jquery 变量的主要内容,如果未能解决你的问题,请参考以下文章
Fancybox (jQuery) - 将信息从父级传递到 iframe 并将 iframe 传递回父级