我正在寻找一种解决方法,即“AdSense不允许您只选择图像但不允许闪存”问题。我是JS的新手,但是有没有办法让一个脚本阻止嵌入在网站中的其他脚本检测到flash插件的存在?即使它不适用于AdSense,也很高兴知道是否有可能在其他设置中执行此操作的黑客。
顺便说一句,我想如果它无法在IE或过时的浏览器版本上工作,我不会在乎。
答案 0 :(得分:1)
看起来adsense通过查看navigator.plugins [“Shockwave Flash”]的内容来检测flash。不幸的是,你不能只是将它设置为不同的值,因为浏览器不会让你。同样,您无法设置navigator.plugins。有些浏览器允许您删除navigator.plugins,但不能删除所有浏览器。
但是,您可以设置导航器。因此,执行所需操作的路径涉及创建虚假导航器对象。
var real_navigator = navigator;
navigator = { plugins:[], mimeTypes:[] };
for (var k in real_navigator) {
var t = typeof real_navigator[k];
if (t == "string" || t == "function") {
navigator[k] = real_navigator[k];
}
}
此时,您仍然可以使用检查用户代理等的脚本,但插件和mimetypes不会显示。
这不是万无一失的,如果你想让IE一起玩,你必须存根ActiveXObject,但总的来说,这会让你更接近你的目标。