在处理缺陷时,我遇到了window.location行为,这与我的理解不同。在此问题之前,我认为为 window.location 分配值会阻止其他操作并继续重定向。
// Try to answer the questions before you run this script on JSFiddle.
// 1. Which site is going to load as a result of redirect method - apple.com or mashable.com?
// 2. Will the console log 'script added' print in console?
function redirect(url) {
var el = document.createElement('script');
var head = document.getElementsByTagName("head")[0];
var content = "window.location.href='"+url+"'";
el.innerHTML = content;
head.appendChild(el);
}
console.log('adding scripts');
redirect('http://apple.com');
redirect('http://mashable.com');
console.log('script added');
我试图查找解释此行为但无法找到任何内容的文档。任何详细解释window.location的文档或文章都会很有用。
答案 0 :(得分:0)
在Javascript中,设置window.location.href
通常是非阻止操作。
当DNS解析新页面时,您仍然可以运行Javascript操作。因此,如果您在此之前更改location.href
,则表示您已开始此过程。
您可以在 WHATWG: Living HTML - HTML Standard.
中了解{J}预期在Javascript中执行的window.location
(具体为window.location.assign
)的方式
设置window.location
对象后,网络浏览器会启动 Location-object navigate
或 Location-object-setter navigate
子例程。