【问题标题】:JQUERY > Loading function from parent window is not workingJQUERY > 从父窗口加载功能不起作用
【发布时间】:2013-05-28 13:50:54
【问题描述】:

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

在 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>

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

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

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: jquery function load window parent


    【解决方案1】:

    您的函数 test 无法访问,因为它位于 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();
    

    【讨论】:

    • 非常感谢 mcpDESIGNS。现在它工作得很好!我曾经尝试过将函数放在准备好的外部,但是在加载的页面中我试图运行这样的函数:window.parent.$.test() ...你指出我的方式工作得很好!谢谢!!!
    • 没问题,也是你的称呼方式。 window.parent.$.test() $ 就好像你有一个名为 test 的 jQuery 扩展(不是普通的窗口函数)。有点不同!
    • 感谢您的提示!我对编码很陌生,这些小细节有时会给我们带来一些真正的麻烦......想给你投票,但我没有这方面的声誉=(
    • 能够投票是 +15... 将尝试回答一些问题以获得声誉并做你应得的投票。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 2016-02-25
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多