Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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/73.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_Redirect - Fatal编程技术网

Javascript重定向奇怪的行为

Javascript重定向奇怪的行为,javascript,jquery,redirect,Javascript,Jquery,Redirect,我试图在事件处理程序中执行JavaScript重定向。事件处理程序从child接收消息,当我收到消息时,我希望执行一个简单的JS重定向 我尝试了以下方法: setTimeout(function(){window.location.href = url;},100); window.location.href=url window.location=url window.location.replace(url) $(location.attr('href',url) 但是上面没有一个做了重定

我试图在事件处理程序中执行JavaScript重定向。事件处理程序从child接收消息,当我收到消息时,我希望执行一个简单的JS重定向

我尝试了以下方法:

setTimeout(function(){window.location.href = url;},100);
  • window.location.href=url
  • window.location=url
  • window.location.replace(url)
  • $(location.attr('href',url)
  • 但是上面没有一个做了重定向。然后我在重定向代码行的前面放了一个
    警报。我收到了
    警报
    ,当我点击它时,重定向成功了

    因此,警报可以正常工作,但当我删除警报时,它不会重定向

    你们能帮我弄清楚吗?我应该看哪些方面?有什么线索吗

    编辑 这是我用来向父级(位于角度控制器内)发送消息的代码块

    这是我用来捕获消息并重定向的代码

    var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
    var eventer = window[eventMethod];
    var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
    
    eventer(messageEvent, function (e) {
        switch( e.data.action ){
            case 'redirect':
                var url = e.data.value;
                //alert("**");
                window.location.href = url;
                //window.location = url;
                //window.location.replace(url);
                //$(location).attr('href',url);
                console.log("INSIDE REDIRECT: ("+url+")");
                break;
            default: break;
        }
    }, false);
    

    希望这能满足评论

    因为它在代码之前有警报时会重定向,所以我认为它可以通过使用setTimeout来工作,如下所示:

    setTimeout(function(){window.location.href = url;},100);
    

    你能显示完整的javascript代码吗?在上下文中显示整个代码,一行代码不提供任何信息。你的浏览器正在阻止重定向。请选择菜单栏右上角的“允许”,背景中发生了某种情况(可能是HTML正在完成加载),导致对
    窗口的更改。位置将被忽略。因为您正在执行
    警报
    ,而javascript正在阻止任何有时间完成的操作,从而使重定向成为可能。这是一个猜测。没有一个明确的答案是不可能的。照目前的情况,这个问题是离题的:为你的评论取消链接。我已经根据你的评论编辑了我的问题!