如果我重写' window.URL '会发生什么?
What happens if I override `window.URL`
我用JavaScript创建了一个自定义URL对象,并发现Firefox已经在window.URL
上有一个类型为MozURL
的对象。我没有注意到任何其他浏览器设置window.URL
,所以我想知道以下事情:
- 用我自己的对象重写
window.URL
是否有任何意想不到的后果 -
window.URL
在Firefox中用于什么? - 是否有任何其他浏览器也设置
window.URL
为自己的对象1
我的备份计划当然是使用一个命名空间对象,但是我宁愿能够写new URL()
而不是new foo.URL()
。
[1]当然,这可能会随着浏览器的后续版本而改变,所以请记住在任何答案上注明日期
编辑添加:
我刚想到将对象命名为URI
而不是URL
,但即使这样,我也可能会坚持使用名称空间,以避免将来可能与URI
发生冲突。
这是Firefox 4的新功能,也是W3C文件API工作草案的一部分。
来自文档:
提供用于创建对象url的方法。
你可以改变它;如果你愿意的话——但它可能会成为你以后想要使用的API。这也可能会让其他开发者感到惊讶,URL
并不是他们所期望的那样。我建议使用名称空间解决方案。
相关文章:
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 注入$window在angular,有什么用
- window.innerWidth window.outerWidth有什么区别
- 如果 window.navigator.userAgent 被弃用,我应该改用什么
- 做window.undefined=window.undefined有什么意义
- 什么是“-[1;平均值;if(!-[1,]&&!window.XMLHttpRequest)"
- window.setTimeout()和setTimeout()有什么区别
- 这些window.external调用是什么意思
- 什么时候是 window.location.href = url 被执行
- 在浏览器返回时使window.history.state null的可能情况是什么
- “window.functionname&&functionname()”是做什么的
- 如果我覆盖 window.scrollTo 方法会发生什么
- JavaScript中“(function(window, undefined){})(window)”是什么意思?
- “window.location.href”和“window.location.hash”有什么区别
- Javascript window.open 什么都不做,不产生错误
- 使用 jquery $(window).width() 有什么好处吗?和高度函数在窗口上.resizeTo( w,h )
- javascript window.stop() 的反面是什么
- 是什么意思?
- 在javascript中,window和this.window有什么区别
- Firefox中的open()和window.open()有什么区别