【问题标题】:What happens if I override `window.URL`如果我覆盖 `window.URL` 会发生什么
【发布时间】:2011-08-12 16:39:50
【问题描述】:

我在 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 发生冲突。

【问题讨论】:

标签: javascript url


【解决方案1】:

它是 Firefox 4 中的新功能,是 File API 的 W3C 工作草案的一部分。

来自documentation

提供用于创建对象 URL 的方法。

你可以改变它;如果您愿意 - 但它可能会成为您以后想要使用的 API。 URL 并不是他们所期望的那样,这也可能会让其他开发人员感到惊讶。我建议使用命名空间解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-15
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多