2010-07-07 28 views
1

工作我有问题,这段代码:错误在Chrome

var el = $('div#editor'); 
el.find('*[contentEditable]').removeAttr('contentEditable'); 

它在Chrome 4/5/6的伟大工程,但它不在FF(3.6。)或Opera(10.60)中工作。

在FF它引发此异常:

错误:未捕获的异常:[异常... “一个无效的或非法的字符串指定” 代码: “12” nsresult: “0x8053000c(NS_ERROR_DOM_SYNTAX_ERR)” 位置:“ http://www.www.com/js/script.js Line:51“]

有没有人有一个想法,为什么发生这种情况,以及如何解决它?

现在我用此修复程序,但它不干净的解决方案,因为它留下CONTENTEDITABLE属性,我要清理服务器端:

try { 
    el.find('*[contentEditable]').removeAttr('contentEditable'); 
} catch (e) { 
    el.find('*[contentEditable]').attr('contentEditable', false); 
} 
+0

欢迎来到SO,虽然你在这里,请不要忘记访问http://stackoverflow.com/faq – Reigel 2010-07-07 07:49:25

回答

1

工作得很好,我...

HTML

<div contenteditable="true">testing....</div> 

jQuery的

$('[contenteditable]').removeAttr('contenteditable'); 

也许尝试在contenteditable所有小写字母和$('*[contenteditable]')

demo

的FF(3.6)或Opera(10.10)测试删除*

+0

非常感谢,现在我觉得自己很愚蠢,因为我尝试了很多东西,除了简单的解决方案。现在它的工作原理应该如此。 也感谢张贴演示 - 它似乎我已经发现有用的工具进行测试 - jsfiddle.net。 – Frodik 2010-07-07 08:08:52

+0

非常欢迎... – Reigel 2010-07-07 08:30:03