在IE中使用contentEditable的风险

时间:2009-01-29 14:27:41

标签: javascript html internet-explorer contenteditable

我们必须在产品中添加基本的HTML编辑器。由于我们目前仅支持IE(大多数客户仍在IE 6上),我被告知使用Internet Explorer内置的XHTML编辑功能 - 例如<div contentEditable="true">,如“Editing a Web Page”所述。

分开,不在其他浏览器中工作。 (管理层并不认为这是一个问题。我们的客户会忍受我们的软件只能与IE合作。我们的软件只在IE中工作,我们从来没有丢失任何资金;大多数客户只会让他们的员工目前使用IE6 )

我们可能会通过contentEditable获得哪些其他问题?


更新

我用“contentEditable”编写的HTML编辑器很难获得可靠性,很多problems。如果我不得不再次这样做,我会将非常努力推送到众多开源解决方案之一(例如TinyMCE)或购买支持的HTML编辑器。

毫无疑问,如果有足够的时间,一个非常熟练的jscript程序员可以让“contentEditable”工作得很好。只是网络上的所有示例看起来都很简单,直到您测试常用操作,例如从单词执行剪切/粘贴并尝试编辑生成的HTML。 (只是客户会做的事情)

(只需在stackoverflow上搜索“contentEditable”以获得其他人遇到的问题的理想选择)

6 个答案:

答案 0 :(得分:11)

contentEditable属性适用于Safari,Firefox 3和Opera 9.

由于操作无疑是通过选择进行的,因此您最大的问题是让选择/范围在浏览器中运行(see here)

浏览器中还有许多little bugs可能会或可能不会咬你。这些包括不兼容的区分大小写,不兼容的再次关闭它的方法(removeAttribute与setting设置为false)。

尽管存在这些缺陷,我发现它的效果相当不错。

答案 1 :(得分:6)

如何使用适用于所有主流浏览器的开源解决方案?

TinyMCE

还有其他项目,但这就是我的用途。

答案 2 :(得分:6)

HTML 5包含contenteditable属性,所以看起来好像它将在IE中存在很长时间。

刚收到IE团队成员的电子邮件

  

虽然基本上不可能   评论未来的高度   可信度,这是公平的说法   我不知道有任何计划   删除contentEditable,如果是的话   删除,它会打破很多   位点。

答案 3 :(得分:2)

快速谷歌搜索在contentEditable的一些(虽然是次要的)问题上产生blog post

答案 4 :(得分:1)

contentEditable适用于Firefox 3。 我不知道contentEditable有什么问题。

答案 5 :(得分:1)

如果没有对添加的HTML内容进行验证,我会确保检查您收到的内容,因为在IE中插入XSS攻击非常容易。