轻松去掉web中flash右键菜单

In: 前端开发

7 04 2009

今天无意中看到一个画面还不错的webgame,随手右键单击看是否用flash写的(我对flash的判断标准是看右键菜单有无About Adobe Flash Player…字样),但是点了居然不出任何菜单。记得之前看到要完全干掉flash右键菜单要用到一些很WS的方法,不知道这个webgame怎么实现的。看了一下它的代码,原来是在flash父容器里做文章:firefox下阻止mousedown默认事件及事件传播;IE下给父容器setCapture。摘录核心代码稍加改造就是下面这个样子:

function NoRightClick(pid){//pid:flash's parentNode id
 
var el = document.getElementById(pid);
 
if(el.addEventListener){
 
el.addEventListener("mousedown",function(event){
  
if(event.button == 2){
    
event.stopPropagation(); //for firefox
    
event.preventDefault()//for chrome
  
}
 
},true);
 
}else{
 
el.attachEvent("onmousedown",function(){
  
if(event.button == 2){
    
el.setCapture();
  
}
 
});
 
el.attachEvent("onmouseup",function(){
  
el.releaseCapture();
 
});
 
el.oncontextmenu = function(){
  
return false;
 
};
 
}
};
<body>
 
<div id="testContent" style="width:800px">
 
</div>
 
<script type="text/javascript">
  var so = new SWFObject("test.swf", "t1", "800", "550", "9", "#000000");
  so.addParam("quality", "high");
  so.addParam("name", "t1");
  so.addParam("id", "t1");
  so.addParam("algin", "middle");
  so.addParam("AllowScriptAccess", "sameDomain");
  so.addParam("menu", "false");
  so.addParam("wmode", "opaque");
  so.addParam("pluginspage", "http://www.adobe.com/go/getflashplayer");
  so.write("testContent");
 
  NoRightClick("testContent");
 
</script>
</body>

经过试验,该代码可以在IE、Firefox和Google Chrome里去掉flash的右键菜单,还是挺方便的。至于这样做有什么意义呢?我暂时还没有想到——但网上搜索一下,有这种需求的人还是不少的。

演示地址

再来看看这些吧

4 Responses to 轻松去掉web中flash右键菜单

Avatar

umlyf

04月 7th, 2009 at 11:02 am

IE下没有了右键菜单,遨游下还有!

Avatar

welefen

04月 9th, 2009 at 8:42 am

这个不错

Avatar

Miller

04月 9th, 2009 at 9:32 am

下次我用JS做个Flash的右键菜单,好像很容器骗人,哈哈

Avatar

laoshu133

02月 24th, 2010 at 2:23 pm

好是好,不过貌似在世界之窗之类的浏览器中也没效果

Comment Form

关于我

JerryQu,当前从事前端开发,@中国北京
这里是我随便记录东西的地方~
需要找我,我的联系方式在这里 »
查找QGYWebim相关信息,请点这里 »

  • 来无影: 这个站的模板不错,我很喜欢![:13 [...]
  • 莞尔: 我用了你的表情插件发现一个问题 那就是路径问题 我的WP没有放在根目录 [...]
  • samuel: 很棒。你自己写的demo,比去看jquery代码简单多了 [...]
  • samuel: 非常棒,很有参考价值。比去看jQuery代码舒服多了 [...]
  • 风剪云: 向你学习了。BS无德之人,拿去用也罢了。居然还拿去赚钱。[:11 [...]
  • nvshao: [:20]不错不 [...]
  • 团伙创意: bu cuo 不错 学习啦~ [...]
  • 3g培训: 再来看看。上班没事干。还是希望看到新文 [...]

共享