在 Firefox 上,window.open(url) 和 window.location.href = url 有什
What's the difference between window.open(url) and window.location.href = url on Firefox?
我正在尝试构建一个书签,将当前网址作为参数提供给另一个网址。
但是我发现这
javascript:(function(){window.open("http://www.somesi.te/some/thing?url="+encodeURIComponent(window.location.href))})()
不起作用,而这
javascript:(function(){window.location.href = "http://www.somesi.te/some/thing?url="+encodeURIComponent(window.location.href)})()
确实如此。除了明显的区别是window.open
打开另一个窗口,window.location.href
改变位置之外,为什么后者有效,而前者只是打开另一个窗口到原始位置?
这是在火狐上。有趣的是,在Chrome上一切正常。
这是安全问题吗?
window.open()
和 window.location.href
之间的区别在于open()
是窗口类的方法,window.location
是窗口类的属性。
1. window.open()
是窗口类上的一个方法
调用 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
是窗口类上的只读属性。
尽管window.location
是只读属性,但window.location
具有内置的快捷方式功能,该功能允许window.location
可分配,这与调用 window.location.assign()
具有相同的效果,后者不返回窗口对象,而是使用根窗口对象为其分配新的 url,从而导致新分配的 url 加载到调用分配位置的 javascript 的浏览器窗口中。
如果要创建书市脚本,则使用 window.location
是获取当前窗口的 url 并将其分配给程序的 url 字符串的更好方法。
您可能会发现在不同的浏览器中出现意外行为的原因是,没有为窗口对象设置官方的公共标准,因此每个浏览器选择在幕后实现它的方式可能会有所不同。
- 直接下载文件,而不是从window.open(url)
- window.location替换并传递URL历史记录条目中的变量
- window.location未刷新到现有URL
- javascript window.location在检查firebug时给了我一个错误的url路径
- window.open(url).print()在Safari中不起作用
- Facebook标签页更改url时不带window.location
- 当用户在选择框中选择选项时,使用window.location.href重定向用户只会更改导航器中URL的最后一位
- 如何获取 onchange 以设置 onclick=window.open(url)
- 使用 window.location.search 时,URL 中的字符会更改
- 使用window.location.htm和匹配的URL数组(一个用于桌面,一个用于移动)将桌面网站重定向到移动
- 翻译一篇文章'上.单击'PHP中的事件,来自'window.open'到基本URL链接
- window.open使用不同的URL
- GWT Window.ClosingHandler捕获所需的url
- MVC - JS window.location.href 将代码插入 URL
- 使用 window.open in JavaScript 的 URL 中的“/”问题
- Javascript:检查window.fullScreen是否为假,然后在新窗口中全屏打开url
- 如何在“窗口”之间进行选择.URL.createObjectURL()' 和 'window.webkitURL.cre
- 野生动物园中window.url的替代品
- FileReader vs. window.URL.createObjectURL
- 如果我重写' window.URL '会发生什么?