如何从其他页面调用Javascript函数?
我有5个javascript函数index.php: 1)如何从其他页面调用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();//当用户单击“显示新消息”按钮时,将调用此功能。 用户在弹出框的文本框中键入消息后,单击“发送”
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();