如何使用弹出窗口javascript中的变量调用父窗口jquery函数?我可以看一下简单的例子吗?
答案 0 :(得分:5)
opener是对开场文档的window
对象的引用。即您可以访问打开窗口的全局javascript命名空间。
e.g。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
function foo(url) {
// if there is a reference to the opening window
if (null!=opener) {
// we call the function in the context of the opening window
opener.foo(url);
}
else {
// otherwise show the data
$('#d1').html(new Date() + " : " + url);
}
}
</script>
</head>
<body>
<div id="d1">...</div>
<button onclick="window.open('?');">new window</button>
<button onclick="foo(document.URL);">propagte url</button>
</body>
</html>
如果在(任何)弹出窗口中按“传播URL”,则函数调用将冒泡到第一个非弹出窗口(具有opener = null)。
编辑:请记住,浏览器中实施的安全限制(如跨域检查)适用。
edit2:history.go(0)
的示例<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
function foo() {
var context = (null!=opener) ? opener : window;
context.history.go(0);
}
$(document).ready( function() {
$('#d1').html("document ready at "+ new Date());
});
</script>
</head>
<body>
<div id="d1">...</div>
<button onclick="window.open('?');">new window</button>
<button onclick="foo(document.URL);">...and action</button>
</body>
</html>
答案 1 :(得分:2)
通常你定义一个这样的插件函数:
(function($) { // jquery no conflict
$.fn.myPlugin = function(myvar){
// do something
}
})(jQuery);
然后使用:
window.opener.$.fn.myPlugin(myvar);
答案 2 :(得分:0)
window.opener.jQuery(myVariable);