和...之间的不同window.open()
and window.location.href
就是它open()
is a method窗口类,以及window.location
is a property窗口类的。
1.window.open()
is a method关于窗口类
呼叫window.open()
方法实际上创建了一个窗口对象,可以将其保存在变量中并根据程序的要求进行操作。
为了演示 window.open() 实际上返回一个窗口对象,请考虑以下代码:
var mywindow = window.open("http://google.com");
mywindow.name = "Awesome Window";
console.log(typeof(mywindow)); // --> "object"
console.log(mywindow.name); // --> "Awesome Window"
您的代码打开不需要的窗口的原因是因为您正在调用window.open()
,人生唯一的目的就是打开一扇新的窗户。
2. window.location
is a 只读属性关于窗口类。
虽然window.location
是只读属性,window.location
有一个内置的快捷方式功能,允许window.location
可分配,与调用效果相同window.location.assign()
,它不会返回 window 对象,而是使用根 window 对象分配新的 url,从而导致新分配的 url 被加载到调用分配位置的 javascript 的浏览器窗口中。
如果您正在创建书市脚本,则使用window.location
是获取当前窗口的 url 并将其分配给程序的 url 字符串的更好方法。
您可能会发现在不同浏览器中出现意外行为的原因是,没有为 window 对象设置官方公共标准,因此每个浏览器选择在幕后实现它的方式可能会有所不同。