【问题标题】:Risk of using contentEditable in IE在 IE 中使用 contentEditable 的风险
【发布时间】:2010-10-04 06:08:57
【问题描述】:

我们必须为我们的产品添加一个基本的 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”即可了解其他人遇到的问题)

【问题讨论】:

  • +1 告诉人们 contenteditable 有多大问题。
  • 现在看来 contenteditable 应该是“稳定的”,但仍然存在问题。例如,动态内容真的会在您剪切粘贴时破坏 html 代码,如下所述:stackoverflow.com/questions/19871978/…
  • @NoBugs,从 word 粘贴的内容然后不可编辑是让我发疯的情况! Word 创建的合法 HTML 内容复杂,可编辑处理。
  • @IanRingrose 有趣,那是在什么浏览器中使用的?你能举个例子吗?
  • @NoBugs,很久以前,我记得IE有问题,可能我们很多客户使用的是IE6。

标签: javascript html internet-explorer contenteditable


【解决方案1】:

contentEditable 属性适用于 Safari、Firefox 3 和 Opera 9。

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

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

尽管存在这些缺陷,但我发现它运行良好。

【讨论】:

    【解决方案2】:

    使用一些适用于所有主流浏览器的开源解决方案怎么样?

    TinyMCE

    还有其他项目,但这是我会使用的。

    【讨论】:

    • 谢谢,我们已经考虑过 TinyMCE,但是管理层需要考虑它的许可证,并且在签出许可证时可能还会产生法律费用。所以我必须使用 contentEditable="true" 除非我能找到不使用它的充分理由。
    【解决方案3】:

    HTML 5 包含 contenteditable 属性,所以看起来它会在 IE 中很长一段时间。

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

    虽然基本上不可能 高评价未来 自信程度,可以这么说 我不知道有任何计划 删除 contentEditable,如果是 删除,它会破坏很多 网站。

    【讨论】:

    • 所以你让 IE 开发者保持活力?
    • contenteditable 似乎得到了广泛的支持......但是,该 contenteditable 上的事件似乎广泛不一致(即)......
    【解决方案4】:

    通过快速的 google 搜索产生了关于 contentEditable 的一些(尽管很小)问题的blog post

    【讨论】:

      【解决方案5】:

      contentEditable 在 Firefox 3 下工作。 我不知道 contentEditable 有什么问题。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 假设它在不受信任的环境中使用
        • 如果我在存储数据之前使用strip_tags 函数并且只允许<b><strong><i><em><u>,是否存在安全问题?
        猜你喜欢
        • 1970-01-01
        • 2012-11-26
        • 1970-01-01
        • 2013-03-23
        • 1970-01-01
        • 2016-05-30
        • 1970-01-01
        • 1970-01-01
        • 2013-08-29
        相关资源
        最近更新 更多