我如何欺骗Safari中的navigator.platform属性? - Safari扩展

时间:2014-12-08 06:22:54

标签: javascript macos safari safari-extension navigator

我想在Safari中欺骗navigator.platform属性,以便我可以让网站认为我在Windows体系结构上运行。我创建了一个尝试执行此操作的Safari扩展。该插件只包含一个空白的“global.html”文件和一个文件“spoof.js”,它作为“启动脚本”注入(基本上它在该页面的内容加载之前在每个页面上执行)。 spoof.js的内容是:

//Copied from http://stackoverflow.com/questions/2166540/how-can-i-fool-a-site-that-looks-at-the-javascript-object-navigator-to-see-tha
new_navigator = {};
for (var i in navigator) {
    new_navigator[i] = navigator[i];
}

new_navigator.platform = 'Windows';

navigator = new_navigator;
//alert(navigator.platform);

如果我取消注释最后一行,每次加载页面时警报框都会显示“Windows”,但是当我使用this page测试扩展时,网站始终将navigator.platform属性读作“MacIntel”。

我在Apple的Safari extension developer's guide中找到了这段摘录。

  

注入的脚本具有隐含的命名空间 - 您不必担心   关于你的变量或函数名称与   网站作者,网站作者也无法在您的网站上调用函数   延期。换句话说,注入的脚本和脚本包括在内   网页在孤立的世界中运行,彼此无法访问   功能或数据。

这是否意味着我无法使用Safari扩展程序编辑导航器项?有什么办法可以使用扩展名设置导航器对象吗?

0 个答案:

没有答案