我有5个javascript函数index.php:
1)showMsg(); //this display 50 latest messages
2)showPopUpBox(); // this I use jquery to load the textbox and send button from typingMsg.php
3)hidePopUpBox(); // this hide pop up box
4)checkNewMsg(); // this will be auto reloaded every 5 sec to check if there is new message, it will show the numbers counts of total new messages.
5)ShowNewMsg(); // this function will be called when the user click the "show new messages" button.
用户在弹出框的文本框中输入消息后,单击“发送”按钮后,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函数?
答案 0 :(得分:2)
您必须在每个将使用它们的页面中包含您需要的所有功能( index.php 和 messagePost.php ,我猜)。
通常通过将.js
个文件中的所有相关函数分组,然后使用<script>
标记将其包含在内来完成。
顺便说一下,其他一些答案包括top
和opener
。所有建议的选项都可以使您的代码正常工作,但一般情况下我建议您在需要它们的页面中导入这些函数。
例如,在弹出窗口(将使用比)中导入hidePopUpBox()
函数可能是有意义的,而不是在父窗口中导入。
答案 1 :(得分:2)
尝试使用
top.showMsg();
top.hidePopUpBox();
top
是指您网页的最顶层window
对象。例如,如果您在iframe中。
如果您在弹出窗口中(opener
调用),请尝试window.open
opener.showMsg();
opener.hidePopUpBox();
答案 2 :(得分:1)
如果我理解,上面的脚本是在弹出窗口中运行的,你可以使用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;
});
});
开启者将始终存在于从另一个指向后面的窗口打开的窗口中。
答案 3 :(得分:0)
你对“在另一个页面上”的意思是什么?如果它们都在index.php中你应该没有问题。 因为我看到你正在使用jQuery,我建议你把你的javascript函数放在$(Document).ready(function(){之外 });
因为他们必须待在外面,但我认为这不是你所说的。
答案 4 :(得分:0)
不,我不知道问题出在哪里我认为问题在于
$(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;
});
}
与同一页面中的其他功能联系 如果我把你弄好了
此致