Javascript重定向奇怪的行为
我试图在事件处理程序中执行JavaScript重定向。事件处理程序从child接收消息,当我收到消息时,我希望执行一个简单的JS重定向 我尝试了以下方法: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) 但是上面没有一个做了重定
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正在阻止任何有时间完成的操作,从而使重定向成为可能。这是一个猜测。没有一个明确的答案是不可能的。照目前的情况,这个问题是离题的:为你的评论取消链接。我已经根据你的评论编辑了我的问题!