打开新窗口问题和右键click问题(散分)
topic/596/596689.xml?temp=.2618524)时,为说明国外在讨论问题的
境界领先于国内之论点时所翻译的文章。
译文摘自:http://bugzilla.mozilla.org/show_bug.cgi?id=71705
问题背景介绍:右键通常被用来激发context menu——上下文菜单,
根据不同的情况提供诸如在新窗口里打开、察看源代码(这是许多钻
牛角尖的人想屏蔽它的原因)、复制url、另存为、加入收藏夹等功
能。有些工具软件还把自己集成到上下文菜单中,如Flashget。
Mozilla和IE都提供oncontextmenu事件来处理上下文菜单(不仅针对
鼠标右键,也适用于Shift-F10)。问题在于按右键是否应该触发
onclick事件?
IE的做法是不触发,因此你不能捕获右键click,但使用onmousedown
可以捕获右键按下的事件。Opera 6更进一步,即使onmousedown也无
法捕获右键事件。Mozilla则可以触发,因此就引起了一些开发者关
于这种触发是否是一个bug的讨论。
-------------------------------------------------------------
Additional Comment #16 From hoju@visi.com 2001-03-30 10:56
不久以前,在一个w3c的邮件列表中,我参与了关于如何处理这样一
个事实即:除了Frameset DTD之外,“target”已经被列为不建议的
属性(译注:许多传统的HTML 3.2的元素和属性在HTML 4.0以及XHTML
1.0中被列为不建议的,并在XHTML 1.1中被彻底摒弃,例如元素font、
属性align等;frameset相关的frameset、frame、target之类也是仅
仅被保留在Frameset DTD中,而没有进入Strict DTD;被摒弃的特性
包括Frame的功能将以CSS Level 1和CSS Level 2来取代)的讨论。
许多人在需要页面上的连接在一个新窗口打开时都这样写:
<a href="somepage.html" target="_blank">
反对使用target属性指向frame之外的任何其它地方的论据在于:它强
制连接打开一个新窗口而没有给用户任何救援。它也没有提供任何标
签里内容的信息。最终一致同意的解决方案是这样写:
<a href="somepage.html" onclick="newWin(this.href); return false;">
newWin() 包含了window.open的句法。
这样做的论据在于新窗口应该是通过脚本打开而非作为HTML说明的一
部分,并且用户可以通过简单的关闭javascript功能来禁止打开新窗
口。它也比另一种可选的脚本更好:
<a href="javascript:newWin(somepage.html);">
因为这个连接是死的,除非用户打开了javascript功能;而在onclic
k的例子里,连接在javascipt被关闭时仍是可访问的。
现在来看上述讨论如何与这个bug(译注:指按右键触发onclick事件)
发生关联……
当我使用上面的脚本,我的意图是当连接被左键点击时打开一个新窗
口(正如你打开一个普通连接)。然而,如果我不想进入这个连接,
而只是想复制这个连接或者将其标上书签(译注:在IE里则是把连接
添加到收藏夹),由于onclick被右键点击触发,就变成了不可能。
我在以下页面http://www.visi.com/~hoju/humor.html里广泛的使用
了上面的脚本。
你可以说我不应该在首页这样使用,但谁又能判断我的意图(或者相
反)?请接受我这样做的事实吧……并且,btw,你也可以注意到这个
页面是遵从HTML 4.01 Strict 和 CSS的。
我可以理解这样的论点:onclick处理程序应该捕获任何click,然后
我们应该通过javascipt检测是哪个button……并且我也很乐意把它作
为一个workaround(译注:我不知道workarount的确切译法,但我感
觉这个词指一个bug的基于实践的替代性解决方案而非根本的解决方案
),但是你仍旧面对这样一个难题——用户和开发者的期望:onclick
(含蓄的)意味着左键点击。
如果你试图通过整个quirks-vs-standards模式来解决,那并不真正触
及到问题,因为较之javascript它更多的处理layout(请让我知道我
的假设在这里是否正确)。
我真的开始明白Blake(译注:另一个参与讨论的人,他的观点是DOM
2既然定义了button的不同值,就说明右键触发onclick不是bug)所说
的DOM2比我所写的更多支持这样的观点(译注:这句话比较难理解,
因为我的英语比较差。有兴趣的人可以看原文。我理解他的意思可能
是指DOM2不仅把检测按键值作为workaround,而可能暗示应该这样处
理),……但是同时,我知道它会违犯大量它之外的现有脚本(译注
:我理解这里指按DOM2之前规范所写的脚本)。
在此期间,我会更新我的脚本来检测哪个鼠标按键被按下以排除右键。
-------------------------------------------------------------
欢迎大家就国外开发者讨论的“境界”以及该问题本身发表高见。
欢迎转载,但请尽量保持本文完整(译错的地方还请指正)。
相关推荐
IEC 61851-24:2023 电动汽车导电充电系统 - 第24部分:直流电动汽车供电设备与电动汽车之间的数字通信,用于控制直流充电 - 完整英文电子版(110页)
IEC 61851-24:2023 与 IEC 61851-23 共同适用于直流电动车供电设备与电动道路车辆(EV)之间的数字通信,用于控制导电直流电力传输,额定电源电压最高可达1000伏交流电或最高1500伏直流电,额定输出电压最高可达1500伏直流电。
Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)
Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)
【带状电容器计算用于电容式触摸传感器应用】半数值模型的电容式触摸传感器集成于金属基材涂层中研究(Matlab代码实现)
内容概要:本文针对电容式触摸传感器在金属基材上应用时易受干扰的问题,提出一种基于半数值模型的仿真分析方法,用于精确计算带状电容器在金属背景下的电容变化。研究通过构建合理的物理模型,结合电磁场理论与数值计算技术,在Matlab平台上实现代码仿真,有效克服金属环境对传感器性能的负面影响,提升其在复杂材料表面工作的稳定性和灵敏度,具有良好的工程应用前景。该方法不仅适用于基础研究,也可为实际产品中抗干扰触摸传感器的设计提供理论依据和技术支撑。; 适合人群:具备电磁场与微波技术基础知识及Matlab编程能力,从事传感器设计、人机交互设备开发、嵌入式系统研发等相关领域的高校研究生、科研人员和工程技术人员。; 使用场景及目标:①开展电容式触摸传感器在金属基材上的集成与优化设计;②掌握半数值建模与仿真方法在电磁传感系统中的应用;③为工业环境下高抗扰触摸器件的研发提供仿真验证手段与设计指导。; 阅读建议:此资源强调物理建模与数值仿真的紧密结合,建议读者结合电磁学原理深入理解边界条件设置、介质分布建模与电场求解过程,并动手运行Matlab代码,调试参数以观察电容响应特性,从而全面提升对传感器工作机制与仿真分析能力的掌握。
【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)
内容概要:本文提出了一种基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法,旨在实现高效、高可靠性的电力转换。该方法通过建立精确的电路数学模型,结合KKT最优性条件进行分段解析优化,有效协调零电压/零电流软开关实现条件与功率器件电压电流应力之间的矛盾,在确保宽范围软开关的前提下显著降低器件的电气应力,从而提升系统效率与寿命。文中详细阐述了控制策略的理论推导过程,并在Simulink平台上构建了完整的闭环仿真模型,验证了该方法在动态响应速度、转换效率优化及器件应力抑制等方面的优异性能,是对高水平EI期刊研究成果的高质量复现; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员,以及从事DC-DC变换器控制算法开发的工程师;适用于具备扎实电路拓扑分析能力与现代控制理论基础的专业技术人员; 使用场景及目标:①深入理解双有源桥(DAB)变换器的工作机理与关键控制挑战;②掌握将非线性优化问题转化为KKT条件求解的方法及其在电力电子系统中的实际应用;③学习如何通过分段解析策略实现多目标(软开关与低应力)协同优化控制;④复现并拓展EI级论文中的先进控制算法,支撑科研创新与工程实践; 阅读建议:建议读者结合提供的Simulink仿真模型,逐步跟进理论推导与控制逻辑实现过程,重点关注KKT条件的引入方式、边界约束处理及闭环控制器设计细节,同时可尝试将该优化思想迁移至其他隔离型DC-DC变换器拓扑中进行对比验证,以深化对先进优化控制策略的理解与应用能力。
无刷直流电机(BLDCM)转速电流双闭环控制、三相桥式星型全控电机研究(Simulink仿真实现)
内容概要:本文围绕无刷直流电机(BLDCM)的转速电流双闭环控制系统展开深入研究,重点基于Matlab/Simulink平台构建三相桥式星型全控电路的高精度仿真模型,实现对电机运行状态的精确控制。研究系统性地对比了传统PID控制与模糊PID控制策略在动态响应速度、抗干扰能力、稳态精度及鲁棒性等方面的性能差异,深入剖析电流环与转速环的协同作用机制。同时,文章进一步引入无位置传感器控制技术与滑模观测器(SMO),有效解决了机械传感器带来的成本与可靠性问题,提升了系统的集成度与工程实用性。所提供的多个仿真模型(含模糊神经网络PID等高级控制策略)为控制算法的验证与优化提供了可复现的技术路径,仿真结果可为电机驱动系统的工业设计与科研创新提供坚实的理论依据和技术支撑。; 适合人群:自动化、电气工程、电力电子与电机控制等相关专业的本科生、研究生,以及从事电机驱动系统研发、新能源汽车、工业自动化等领域工作的工程师和技术人员。; 使用场景及目标:①掌握无刷直流电机双闭环控制系统的建模、仿真与调试全流程;②深入理解并实践传统PID与模糊PID控制器的设计原理与参数整定方法;③探究无位置传感器控制与滑模观测器等先进估测技术的实现机理;④为毕业设计、科研课题、课程项目或工业级电机控制器开发提供可直接借鉴的仿真基础与解决方案。; 阅读建议:建议读者结合Matlab/Simulink环境进行动手实践,按照文档指引逐步搭建模型,重点观察不同控制策略下的系统响应曲线,深入分析控制参数变化对性能的影响,并鼓励在此基础上拓展研究如负载突变、参数摄动等复杂工况下的控制策略优化。



