代码如下:
...text <span contenteditable="true" onChange="someFunction()">blah blah</span> text...
onChange 事件不起作用。 (至少在火狐浏览器中)
我不想使用文本区域/输入标签,因为必须可以仅更改文本中的特定单词,并且必须内联显示(而不是块)。
有什么办法可以做到这一点吗?
并不真地。最新的 WebKit 浏览器支持 HTML5input
事件于contenteditable
elements,这是理想的,但其他浏览器不支持(2012 年 12 月 31 日更新:Firefox 从版本 14 开始支持此功能)。否则你也许可以度过难关DOM 突变事件 http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents DOMNodeInserted
, DOMNodeRemoved
and DOMCharacterDataModified
,但它们有两个缺点:首先,它们在 IE contenteditable其次,带有替换事件的新规范正在制定中,这意味着它们很可能在未来的浏览器中被替换。
实例:http://jsfiddle.net/MBags/ http://jsfiddle.net/MBags/
或者您可以进入较低级别并处理按键、鼠标和剪贴板事件(cut
and paste
),这将适用于所有主要浏览器,但这意味着您需要在每次触发此类事件时检查可编辑内容是否已更改,这将变得滞后并损害大块内容的用户体验。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)