我试图修复我使用的是富文本编辑器,这会导致<embed>标签的错误中插入没有他们的结束标记(其中螺丝产值可达完全)。我已经分离出的问题于该操作:

// body is a <body> tag
body.innerHTML = '<embed src="http://example.com/whatever"></embed>';

没有花哨的代码,只是Firefox的innerHTML分配。您应该能够复制的错误在Firebug像这样:

>>> document.body.innerHTML = "<embed></embed>"
"<embed></embed>"
>>> document.body.innerHTML
"<embed>"

有没有一种解决方法?我需要的标签,但我不能证明重建/更换整个富文本编辑器,因为一个蹩脚的边缘情况。

我不能将此转换为类似document.createElement('embed'),因为现实世界的输入到该编辑器可以很容易地包括文本围绕<embed>包裹几段; innerHTML的是,在纸上,这个完美的使用情况下,我不能让它与<embed>工作。

有帮助吗?

解决方案

这可能不是一个回答您的问题,但 <嵌入> 的是不是HTML的任何标准化版本,直到HTML5的一部分,根据的 W3C

其他提示

虽然<嵌入>是不是一个标准的HTML的一部分,它已被广泛实施和因此,一个事实上的标准。

这是说,我运行Firefox 3(雷区v3.0.0.5)和我得到稍微意外,但完全正确的功能。我期待的确切的HTML被放入我选择的元素,而是我的洁净的HTML。

由于<嵌入是空标记(即,它不能有内容,只有属性),火狐接通这

<embed attribute="value"></embed>

<embed  attribute="value"/>

,这是一种有效的prefectly封闭标签。它在其他空标签,如<输入/>和<图像>

相同的

此页面你可以看到在行动这一点。页面的脚本的版本有一个明亮的粉红色div中的嵌入式视频(YouTube)的。脚本窃取其内容,并将其放置到身体的innerHTML。

这让我想起了问题,文件撰写了/还以

scroll top