从子ajax调用父窗口中的javascript函数

时间:2013-02-08 00:42:23

标签: php ajax function parent-child

一直在开发一个新网站,并遇到了问题。

我的主页上有一个ajax加载器,它每秒加载一个脚本以检查后台进程是否完成(通常为20秒)

但是,一旦ajax脚本执行(20秒后),它仍然会每秒刷新一次。

一旦ajax脚本完成其工作,我需要将父页面重定向到新的URL。

我的ajax代码:

<script type="text/javascript">
function myFunction()
{
var ajaxRequest;  // The variable that makes Ajax possible!

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){

document.getElementById("txtHint").innerHTML=ajaxRequest.responseText;
    }
}
ajaxRequest.open("GET", "code/timer.php?file='.$file.'", true);
ajaxRequest.send(null); 
}
</script>



<script type="text/javascript">
function forward(){

location.href=\'http://domain/newpage.html\';


}

function setTimer(){

set = setInterval( "myFunction()", 1000 );

}
</script>

forward()中的反斜杠;是因为我的代码是从php回应的。

我尝试了一些代码,但应该有效的主要代码(在子ajax元素中)是:

window.opener.forward();

非常感谢你们能提供的任何帮助......谢谢

1 个答案:

答案 0 :(得分:0)

开启者仅在使用javascript打开的窗口中可用,只需调用

forward();

但是你应该为函数使用另一个名称,有一个预定义的方法window.forward()