Javascript 站点上的js代码能否阻止其他js代码检测到flash的存在?

Javascript 站点上的js代码能否阻止其他js代码检测到flash的存在?,javascript,flash,dom,Javascript,Flash,Dom,我正在寻找一个解决“AdSense不允许你只选择图像而不选择flash”问题的方法。我是JS的新手,但是有没有办法让一个脚本阻止嵌入在站点中的其他脚本检测到flash插件的存在?即使它不能与AdSense一起工作,如果有一个黑客可以在其他环境下工作,那就很好了 顺便说一句,我想我不会在意它是否在IE或过时的浏览器版本上无法工作。看起来adsense通过查看navigator.plugins[“Shockwave flash”]的内容来检测flash。不幸的是,您不能仅仅将其设置为不同的值,因为浏

我正在寻找一个解决“AdSense不允许你只选择图像而不选择flash”问题的方法。我是JS的新手,但是有没有办法让一个脚本阻止嵌入在站点中的其他脚本检测到flash插件的存在?即使它不能与AdSense一起工作,如果有一个黑客可以在其他环境下工作,那就很好了


顺便说一句,我想我不会在意它是否在IE或过时的浏览器版本上无法工作。

看起来adsense通过查看navigator.plugins[“Shockwave flash”]的内容来检测flash。不幸的是,您不能仅仅将其设置为不同的值,因为浏览器不允许您这样做。同样,您不能设置navigator.plugins。有些浏览器允许您删除navigator.plugins,但不是全部

但是,您可以设置导航器。因此,实现所需操作的路径包括创建一个假的navigator对象

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];
  }
}
在这一点上,您仍然可以使用脚本来检查您的用户代理等,但是插件和mimetype不会出现


这并不是傻瓜式的,如果你想让IE继续玩,你就必须截短ActiveXObject,但总的来说,这会让你更接近你的目标。

看起来adsense通过查看navigator.plugins的内容来检测flash。不幸的是,您不能仅仅将其设置为不同的值,因为浏览器不允许您这样做。同样,您不能设置navigator.plugins。有些浏览器允许您删除navigator.plugins,但不是全部

但是,您可以设置导航器。因此,实现所需操作的路径包括创建一个假的navigator对象

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];
  }
}
在这一点上,您仍然可以使用脚本来检查您的用户代理等,但是插件和mimetype不会出现


这不是万无一失的,如果你想与IE合作,你必须将ActiveXObject存根,但总的来说,这会让你更接近你的目标。

如果你试图击败AdSense对Flash的检测,你就违反了AdSense的条款和条件。最终,谷歌可能会注意到,你会发现自己被禁止使用AdSense。一辈子。这是一个完全不透明的一次性上诉程序,你不太可能从中得到好的结果。(不相信我?读一读:)如果你重视你的AdSense账户(你是否应该这样做是一个争论的问题,它有很多不同),不要这样做。要么在规定范围内工作,要么使用不同的广告网络。我不同意-如果可以的话,我会给TJ打电话。基本上,你必须使用现有的AdSense代码。看看吧,因为没有通用的方法来禁用对Flash的检测。@TJ:我不明白谷歌为什么要关心我是否想从竞标中排除一些广告。原则上,我也可以通过打开评论中心并手动批准广告,如果且仅当广告是非flash的,并且需要大量的额外工作…@Anonymous:如果你愿意,可以不同意。如果你在你的网站上乱搞AdSense广告,你就违反了他们的T&C,他们会定期(自动或手动)审查网站,如果他们认为你违反了他们的规定,他们就会将你拒之门外。他们不会告诉你他们为什么禁止你,他们不会告诉你他们认为你违反了t&C,而且你被撤销禁令的几率很低。@R..:我所能做的就是重复我的最后一句话:如果你重视你的AdSense帐户,不要胡闹试图欺骗AdSense。如果你可以接受它或离开它(为了生活),那么就去享受它,如果他们注意到,就准备好切换到另一个广告网络。(如果你的站点很小,不要认为作为一个小站点会保护你。)如果你试图击败AdSense对Flash的检测,你就违反了AdSense的条款和条件。最终,谷歌可能会注意到,你会发现自己被禁止使用AdSense。一辈子。这是一个完全不透明的一次性上诉程序,你不太可能从中得到好的结果。(不相信我?读一读:)如果你重视你的AdSense账户(你是否应该这样做是一个争论的问题,它有很多不同),不要这样做。要么在规定范围内工作,要么使用不同的广告网络。我不同意-如果可以的话,我会给TJ打电话。基本上,你必须使用现有的AdSense代码。看看吧,因为没有通用的方法来禁用对Flash的检测。@TJ:我不明白谷歌为什么要关心我是否想从竞标中排除一些广告。原则上,我也可以通过打开评论中心并手动批准广告,如果且仅当广告是非flash的,并且需要大量的额外工作…@Anonymous:如果你愿意,可以不同意。如果你在你的网站上乱搞AdSense广告,你就违反了他们的T&C,他们会定期(自动或手动)审查网站,如果他们认为你违反了他们的规定,他们就会将你拒之门外。他们不会告诉你他们为什么禁止你,他们不会告诉你他们认为你违反了t&C,而且你被撤销禁令的几率很低。@R..:我所能做的就是重复我的最后一句话:如果你重视你的AdSense帐户,不要胡闹试图欺骗AdSense。如果你可以接受它或离开它(为了生活),那么就去享受它,如果他们注意到,就准备好切换到另一个广告网络。(如果你的网站很小,不要认为作为一个小网站会保护你。)哪些浏览器允许你删除navigator.plugins?Google Chrome允许。这是我的mac笔记本电脑上唯一的浏览器。Firefox和Safari都不这么做。哪些浏览器允许你删除导航器。插件?谷歌浏览器允许。这是我的mac笔记本电脑上唯一的浏览器。Firefox和Safari都不这么做。