2013-03-09 69 views
0

哪里有大量关于挂钩功能的信息。但。是否有可能挂钩访问对象?例如, 。 我们有“导航器”对象。它有很多参数。我们需要挂钩访问UserAgent参数。可能吗? Mybe我可以使用setter/getter的定义?还是别的...JavaScript。如何挂钩到对象

因为我们知道哪里没有办法取代导航对象(它是只读的)。因此,我们不能解决售后服务简单,如:

var blabla = navigator; 
blabla.UserAgent = "myagent"; 

商祺!

PS 对不起,我的英语:)

+0

你是什么意思的“钩”?阻止api访问?在继续时做些什么? – benzonico 2013-03-09 14:23:16

+0

是的。做一些事情,例如替换UserAgent参数并调用一些函数。 – user1641423 2013-03-09 14:43:35

+0

由您控制的某些代码对该变量的访问权限? – benzonico 2013-03-09 14:46:20

回答

1

我不知道如果我理解正确你的问题,但如果你想在一个navigator.userAgent的访问做一些事情,你可以重新定义它作为一个属性。

(function() { 
    var userAgent = window.navigator.userAgent; 
    Object.defineProperty(window.navigator, "userAgent", { 
     get: function() { 
      console.log("hello from useragent"); 
      return userAgent; 
     } 
    }); 
})(); 
+0

非常感谢!它的全部我需要! – user1641423 2013-03-14 10:30:26

+1

是否可以执行相同的函数来访问*任何*属性? – Domi 2014-05-08 17:30:19