Mozilla designMode and object with absolute position

本文介绍了一种在Firefox浏览器中禁用绝对定位图片拖拽的方法,通过监听mousedown事件并阻止默认处理流程,避免浏览器自动添加拖拽手柄,保持图片位置不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  近段时间在做一个有特殊需求的在线Editor,需要在编辑区中添加绝对定位("position:absolute;")的image;在Firefox中调试时发现,当选中绝对定位的image时,浏览器会为其添加一个default handler,通过这个handler我们可以在文档范围内随意的拖动image,而我们的需求是不能这样去改变image的位置的,需要将这一浏览器的默认行为disable掉。

  首先想到的是捕获dragdrop event,但试了半天发现,可以捕获拖动image的event,但通过default handler拖动的event却始终无法捕获

  接着想到了一种类似的情况,如果designMode打开,浏览器会为编辑区中的table也添加default handler,但我们可以通过执行以下命令阻止这一默认行为:
js 代码
 
  1. document.execCommand('enableInlineTableEditing', falsefalse); 
 
  也许也有相应的命令来阻止浏览器为绝对定位的对象添加default handler. 'enableInlineTableEditing'这个command是从FCKEditor中学来的,而他们也是通过研究mozilla的源码而发现的。所以我也下载了mozilla的源码研究了半天,终于在nsHTMLDocument.cpp中找到了所有支持的command列表:gMidasCommandTable;'enableInlineTableEditing'也在其中。但我并没有在里面发现和absolute position相关的command;杜撰了一些类似于'enableAbsolutePositioning'这样的command去试,都抛出异常告诉我没有实现...

  难道就没有办法对付它了吗?正当我感到绝望之时,组里一个聪明的家伙想到了一个巧妙的方法,很简单的解决了这个问题:default handler并不是一开始就有的,只有点击了绝对定位的对象它才会出现;而鼠标点击必然先触发一个mousedown事件,捕获这一事件,判断事件的targer是否是绝对定位的对象,如果是,则阻止对该事件的后续处理。代码如下:
js 代码
 
  1. oOnMouseDown = function(e) {  
  2.    if (e.target.tagName == "IMG") {  
  3.       e.preventDefault();  
  4.       e.stopPropagation();  
  5.     }  
  6. }  
  7.   
  8. document.addEventListener('mousedown', oOnMouseDown, true);    

  第三个参数设为true,以便事件发生时首先调用我们定义的listener;判断语句还可以根据实际情况细化
  最终结果是,当点击编辑区中绝对定位的image时,什么也没有发生,可恶的deault handler再也出不来了,
内容概要:本文深入探讨了金属氢化物(MH)储氢系统在燃料电池汽车中的应用,通过建立吸收/释放氢气的动态模型和热交换模型,结合实验测试分析了不同反应条件下的性能表现。研究表明,低温环境有利于氢气吸收,高温则促进氢气释放;提高氢气流速和降低储氢材料体积分数能提升系统效率。论文还详细介绍了换热系统结构、动态性能数学模型、吸放氢特性仿真分析、热交换系统优化设计、系统控制策略优化以及工程验证与误差分析。此外,通过三维动态建模、换热结构对比分析、系统级性能优化等手段,进一步验证了金属氢化物储氢系统的关键性能特征,并提出了具体的优化设计方案。 适用人群:从事氢能技术研发的科研人员、工程师及相关领域的研究生。 使用场景及目标:①为储氢罐热管理设计提供理论依据;②推动车载储氢技术的发展;③为金属氢化物储氢系统的工程应用提供量化依据;④优化储氢系统的操作参数和结构设计。 其他说明:该研究不仅通过建模仿真全面验证了论文实验结论,还提出了具体的操作参数优化建议,如吸氢阶段维持25-30°C,氢气流速0.012g/s;放氢阶段快速升温至70-75°C,水速18-20g/min。同时,文章还强调了安全考虑,如最高工作压力限制在5bar以下,温度传感器冗余设计等。未来的研究方向包括多尺度建模、新型换热结构和智能控制等方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值