Opera下自定义右键菜单的研究

本文探讨了Opera浏览器因不支持oncontextmenu事件导致自定义右键菜单的问题。介绍了FCKEditor通过检测鼠标右键并利用透明按钮遮挡,及YUI采用Ctrl+左键模拟右键点击的解决方案。

Opera是一个来自挪威的浏览器,有着优秀的缓存机制,浏览网页速度很快,有着自己庞大的粉丝群。但是opera并没有支持上下文菜单事件,也就是说我们通常使用的依靠在页面中重写oncontextmenu事件来实现自定义右键菜单的方法不会工作。那么,有没有别的方法来实现自定义菜单呢?

我们来看看三个著名的产品(Fckeditor、YUI、Google Doc)怎么解决opera没有oncontextmenu事件这个问题:

Fckeditor:Fckeditor这个开源的编辑器我想不用多介绍了吧,它的最新版本已经支持了opera。那么它是怎么处理右键菜单的呢?分析源码可以知道,它注册了onmousedown事件,并且判断鼠标按下的是不是右键,如果是就显示自定义菜单。这样看似很完美,但是有两个致命的弱点:1.默认情况下opera是不检测鼠标右键点击的,也就是右键按下时根本不触发mousedown事件。除非在“工具”-“首选项”-”高级”-”内容”-“Javascript选项”中勾选“允许脚本检测右键单击”;2.opera自身的上下文菜单会跟自定义菜单一起出现,也就是说无法preventDefault。这个问题解决起来有一点点巧妙,经过实验我们可以发现,opera下在type等于button的input上点击右键不会出现系统上下文菜单,于是我们可以在mousedown时在鼠标下放一个几乎透明的type=button的input,再在mouseup的时候隐藏这个button。

YUI的MENU组件:YUI是一个先进的界面库,功能强大,使用简便。那么他是怎么解决这个问题的呢?相比于FCKEditor,YUI换了另外一种思路,既然Opera默认不支持检测右键点击,那就用左键点击来代替总可以吧,但是这样显然会干扰用户正常操作,于是YUI又加了一条规则,按下ctrl键的同时点击左键才等同于右键。“Hold down the control key and click with the left mouse button.”

Google Doc:Google出品的web office套件。Google的技术不用怀疑,那么他是怎么解决这个问题的呢?答案是:既然不能完美解决,干脆就不解决。反正Google Doc的所有操作都不是只有右键菜单才能完成。不愧是Google!

本文提到的两种解决方案实现代码

 

 

 

Trackback: http://www.qgy18.com/2008/08/opera_contextmen/

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值