我有一个动态抓取这两个文件的页面。
现在Skype有以下几行:
s.trackAction(_t, this);
不幸的是,跟踪工具JavaScript文件还有 s 作为对象,因此s.trackAction
对Skype无效并打破整个页面。
答案 0 :(得分:4)
您可以执行以下操作:
s
的引用保存到变量中,假设为first_s
。s
的引用保存到变量,假设为second_s
。然后,将s
设置为您希望成为默认全局值的任何一个(例如,对于其他人的代码)。
然后,对于您自己的代码或您正在使用的任何其他代码,请将其放在此类块中:
(function(s) {
// any code in here that refers to `s` will see the value of second_s
})(second_s);
或
(function(s) {
// any code in here that refers to `s` will see the value of first_s
})(first_s);
我能想到的另一个选择是修改Skype代码以使用名为skype
而不是s
的全局变量,并在页面中包含该修改后的版本。
如果skype代码写得正确,它就可以不使用简单的全局定义名称,如s
。 jQuery和其他使用$
符号的人向大家展示了如何正确地做到这一点。