最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Is it possible to overwrite window.location function with a custom function? - Stack Overflow

programmeradmin2浏览0评论

Is it possible to disable, or even better, replace with a custom function, window.location?

This question is related: Disable a built-in function in javascript (alert)

While it works quite well for window.alert, this does not work for window.location.

We would love to be able to find a way to replace or disable (replace would be ideal, so we can AJAX log) window.location... Dirty advertisers have at times before used this to steal people away from our web properties.

Any ideas?

Even something that only works on a few specific browsers would be fine as once caught (via AJAX logging) we can act on this fairly quickly.

Is it possible to disable, or even better, replace with a custom function, window.location?

This question is related: Disable a built-in function in javascript (alert)

While it works quite well for window.alert, this does not work for window.location.

We would love to be able to find a way to replace or disable (replace would be ideal, so we can AJAX log) window.location... Dirty advertisers have at times before used this to steal people away from our web properties.

Any ideas?

Even something that only works on a few specific browsers would be fine as once caught (via AJAX logging) we can act on this fairly quickly.

Share Improve this question edited May 23, 2017 at 12:10 CommunityBot 11 silver badge asked Jun 25, 2011 at 15:11 anonymous-oneanonymous-one 15.1k19 gold badges63 silver badges86 bronze badges 8
  • 1 window.location is not a function. – Jon Commented Jun 25, 2011 at 15:26
  • from chrome console: console.log(typeof window.location); object one step closer i suppose. any idea if what i am trying to accomplish is possible? – anonymous-one Commented Jun 25, 2011 at 15:30
  • @anonymous-one: Nope -- it's a property, so you cannot replace it with your own code (there is no code to replace). – Jon Commented Jun 25, 2011 at 15:35
  • Are you saying that advertisers are changing the window.location property in your web pages, and thus directing users away from your site to a different one? – bbg Commented Jun 25, 2011 at 15:35
  • it has happened twice in the last 1.5 years (that we know of). we iframe all of our adspaces, but they were able to get around this via parent.window.location=....; – anonymous-one Commented Jun 25, 2011 at 15:39
 |  Show 3 more comments

2 Answers 2

Reset to default 8

try this

var _window = {
       location: "myLocation"
};

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

I don't believe you can reassign window.location. From MDN:

Summary

Returns a Location object, which contains information about the URL of the document and provides methods for changing that URL. You can also assign to this property to load another URL.

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

As it takes a value like a property, how would you "reassign" the object/function to another value? I don't think it's possible due to the property behavior.

发布评论

评论列表(0)

  1. 暂无评论