Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从其他页面调用Javascript函数?_Javascript_Jquery_Ajax - Fatal编程技术网

如何从其他页面调用Javascript函数?

如何从其他页面调用Javascript函数?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有5个javascript函数index.php: 1) showMsg()//这将显示50条最新消息 2) showPopuBox();//我使用jquery从typingMsg.php加载文本框和发送按钮 3) hidePopUpBox();//此隐藏弹出框 4) checkNewMsg();//每5秒自动重新加载一次,以检查是否有新消息,它将显示新消息总数。 5) ShowNewMsg();//当用户单击“显示新消息”按钮时,将调用此功能。 用户在弹出框的文本框中键入消息后,单击“发送”

我有5个javascript函数index.php:

1)
showMsg()//这将显示50条最新消息

2)
showPopuBox();//我使用jquery从typingMsg.php加载文本框和发送按钮

3)
hidePopUpBox();//此隐藏弹出框

4)
checkNewMsg();//每5秒自动重新加载一次,以检查是否有新消息,它将显示新消息总数。

5)
ShowNewMsg();//当用户单击“显示新消息”按钮时,将调用此功能。

用户在弹出框的文本框中键入消息后,单击“发送”按钮后,ajax将调用messagePost.php将消息提交到数据库,如下代码所示:

$(function() {
$(".button").click(function() {
$.ajax({
             type: "POST",
             url: "messagePost.php",
             data: dataString,
             success: function() {
                 $('textarea.expand25-75').val('');
                 showMsg(); //this is my problem
                 hidePopUpBox(); //this is my problem too
             }
        });
    return false;
});
});
从上面的代码可以看出,showMsg()的函数;hidePopUpBox();无法调用,因为函数不在此页面上,我的问题是如何从不同页面调用javascript函数?

你说的“在另一个页面上”是什么意思?如果它们都在index.php中,那么调用它们应该没有问题。 既然我看到您正在使用jQuery,我建议您将javascript函数放在$(Document.ready(function())之外{ });


因为他们必须呆在外面,但我不认为这是你所说的。

你必须在使用它们的每个页面中包含所有需要的函数(我想是index.php和messagePost.php)

这通常是通过将
.js
文件中的所有相关函数分组,然后使用
标记将它们包括在内来实现的


顺便说一下,其他一些答案正确地包括
top
opener
。所有建议的选项都可以使代码正常工作,但一般来说,我建议您将函数直接导入需要它们的页面中


例如,将
hidePopUpBox()
函数直接导入弹出窗口(将使用而不是父窗口)可能有意义。

据我所知,如果在弹出窗口中运行上述脚本,则可以使用opener对象访问基页中的脚本

$(function() {
$(".button").click(function() {
$.ajax({
             type: "POST",
             url: "messagePost.php",
             data: dataString,
             success: function() {
                 $('textarea.expand25-75').val('');
                 opener.showMsg(); //this is my problem
                 opener.hidePopUpBox(); //this is my problem too
             }
        });
    return false;
});
});

打开器将始终存在于从指向后面的另一个窗口打开的窗口中。

不,不,我可以看到问题出在哪里,我认为问题出在哪里

$(function() {
// You Are Here Not in contact with outside script 
});
我认为这就是javascript闭包之类的东西 我认为你应该用

window.onload=function()
{  
 $(".button").click(function() {
     $.ajax({
             type: "POST",
             url: "messagePost.php",
             data: dataString,
             success: function() {
                 $('textarea.expand25-75').val('');
                 opener.showMsg(); //this is my problem
                 opener.hidePopUpBox(); //this is my problem too
             }
        });
    return false;
});
}
与同一页面中的其他功能联系 如果我没弄错的话

问候

尝试使用

top.showMsg();
top.hidePopUpBox();
top
指页面最顶端的
窗口
对象。例如,如果您在iframe中

如果您在弹出窗口中(由
窗口调用。打开
),请尝试
打开器


我可以问一下,为什么不将可重用javascript函数放在.js文件中,并在需要使用函数的每个页面中引用它??或者该函数服务器业务是否与index.php页面相关?
如何从不同页面调用javascript函数?
以及什么是不同页面?该函数在此范围内可见吗?ajax回归成功了吗。另一件事是,是否可以调用其他页面,或者是否在当前页面中正确添加了该页面?像
opener.showMsg();
opener.hidePopUpBox();