window.location.href之后的代码执行吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.location.href之后的代码执行吗相关的知识,希望对你有一定的参考价值。
out.println("<script language='javascript'>alert('你好');window.location.href='login.html';</script>");
flag=false
就是想问一下,这个flag=false还会执行么?是不是一跳转之后就把后面的完全忽略?谢
我想也应该是不再走flag=false,但是书上的结果确实是走了它。还是谢你了!!!
大哥。不可完全信赖书本知识。你可以在后面加个alert()弹出对话框。如果弹出就说明走了啊。不要完全信从书本。 参考技术A 会执行,你只需要打断点调试一下就知道了
IE 与 window.location.href 不兼容
【中文标题】IE 与 window.location.href 不兼容【英文标题】:IE incompatability with window.location.href 【发布时间】:2012-04-29 10:00:34 【问题描述】:我正在使用来自 AJAX 发布请求的回调来导航到新页面,但它不适用于 Internet Explorer。我的代码如下:
$.ajax(
type: "POST",
url: phpUrl,
data: data,
async: false,
success: function()
if (navigator.appName == 'Microsoft Internet Explorer') window.location.href("/step2.php")
else window.location.href = "/step2.php"
,
dataType:'json'
);
这在 FF/Safari/Chrome 上运行良好,但是当我在 IE 上测试它时它不起作用。有没有更好的重定向到新页面的方法?我正在使用async:false
,因为如果我不使用回调,我的数据不会加载到 Chrome/Safari 上,因为页面会在 POST
请求完成之前更改。
【问题讨论】:
【参考方案1】:IE 只喜欢完整的 url。
var fullURL = 'http://www.your_site.com/step2.php';
$.ajax(
type: "POST",
url: phpUrl,
data: data,
async: false,
success: function()
window.location.href(fullURL);
,
dataType:'json'
);
【讨论】:
【参考方案2】:window.location.href = "/step2.php"
就好了。
【讨论】:
hmmm,除了 IE 什么都可以!你有什么想法为什么它不能在这个浏览器上运行?【参考方案3】:是括号。 href
不是一个函数,所以尝试调用它——window.location.href("/step2.php")
——是一个TypeError
。
像下一行一样分配给href
,或者更好的是,使用location.assign()
:
location.assign('/step2.php');
虽然您可以直接分配给 location
的属性 (location.href='...';
) 以使浏览器导航,但我建议不要这样做。
在内部,这样做只是调用location.assign()
,然后分配给属性does not always behave the same in all browsers。
关于,async:false
,永远不要这样做。如果您发出同步 XHR 请求,you're doing it wrong。 8.4% 报告的 IE9 挂起是由于同步 XHR 阻塞了浏览器。
鉴于您在回调中有它,在 POST 完成之前不会分配给 location
,所以我不确定您所说的“页面会在 POST 完成之前更改”是什么意思。 (您忘记取消表单的submit
了吗?)
【讨论】:
奇怪。location.assign("/step2.php");
也不能在 IE 上运行,但可以在 FF/Safari/Chrome 上运行。我最初尝试将它用作函数是基于我阅读的文档(@Hexxagonal 也提到过)。
我同意你关于 async
的观点 - 我已经删除了它。感谢您的建议。
从不是一个强词。它有时对于同步 ajax 是必要且有用的。但是,你的观点很好。在需要阻塞的情况下,开发人员应注意明显地表明某些事情仍在发生,即 ajax 加载程序 gif。
@peter:这是我对never这个词感到满意的情况。关键是,如果您使用同步 XHR,您无法显示加载程序 gif,因为 XHR 请求会阻止您的页面呈现。老实说,我认为没有不能使用异步 XHR 的情况;同步 XHR 有太多缺点,无法证明在异步上使用它是合理的。
我将它与 window.location.href 混合使用...认为它是 ie 的后备方案,它使我的问题消失了。它现在正确重定向,而不是通过其他脚本摸索以上是关于window.location.href之后的代码执行吗的主要内容,如果未能解决你的问题,请参考以下文章
js延迟window.open window.location几秒之后跳转