是否可以使用自定义函数覆盖window.location函数?

时间:2011-06-25 15:11:57

标签: javascript function replace built-in

是否可以禁用甚至更好地替换自定义函数window.location

这个问题是相关的:Disable a built-in function in javascript (alert)

虽然它适用于window.alert,但这对window.location无效。

我们希望能够找到替换或禁用的方法(替换将是理想的,因此我们可以AJAX日志)window.location ...肮脏的广告客户有时会使用它来窃取人们远离我们的网站属性。

有什么想法吗?

即使只能在少数特定浏览器上运行的东西也可以正常运行(通过AJAX日志记录),我们可以相当快地采取行动。

2 个答案:

答案 0 :(得分:6)

我不相信你可以重新分配window.location。来自 MDN

  

<强>摘要

     

返回一个Location对象   包含有关URL的信息   该文件并提供方法   更改该网址。 你也可以分配   到此属性加载另一个URL

https://developer.mozilla.org/en/DOM/window.location

因为它需要像属性一样的值,你如何将对象/函数“重新分配”到另一个值?由于财产行为,我不认为这是可能的。

答案 1 :(得分:5)

试试这个

var _window = {
       location: "myLocation"
};

(function (window) {
   console.log(window.location);
}(_window));