1

我在尝试从父窗口执行功能时遇到了一些麻烦。

在 stackoverflow 的快速搜索中,我发现了一些关于这个问题的线程,但没有一个有适合我的解决方案。而且我真的不知道问题出在哪里。

这是我正在尝试的测试代码:


(主页)

<html>
<head>
<script type="text/javascript" src="../_js/jquery-1.9.1.js"></script>
<script>
$(document).ready(function() {
    function test(){
        alert("It Works");  
    }
    $('.loadpg').load('teste5b.php');   
});
</script>
</head>

<body>
<div class="loadpg" style="display:block;"></div>
</body>
</html>

(加载页面)

<html>
<head>
<script type="text/javascript" src="../_js/jquery-1.9.1.js"></script>
<script>
$(document).ready(function() {
    $('a').click(function(event){
        event.preventDefault();
        window.parent.$.test();
    });
});
</script>
</head>
<body>
<a>Click Here</a>
</body>
</html>

基本上,我需要这个,因为我正在编写一个模态窗口插件以在我的应用程序中使用,我将使用这个模态窗口加载一个简短的表单来更新我的数据库。当模态窗口关闭时,父窗口将被更新。

我需要加载父窗口函数来关闭模态窗口并在数据库更新后更新主页的内容。

任何帮助将不胜感激。

谢谢!

4

1 回答 1

1

您的函数测试无法访问,因为它位于 document.ready 函数闭包内。把它放在外面,你就可以通过以下方式正常访问它:

// the parent page:
$(document).ready(function () { 
    $('.loadpg').load('teste5b.php');  
});

function test () { /* your function here */ }

// inside your loaded page, you can call it like this:
window.parent.test();
于 2013-05-28T14:00:28.300 回答