【问题标题】:innerHTML W3C equivalentinnerHTML W3C 等价物
【发布时间】:2009-09-02 19:22:00
【问题描述】:

我正在使用几年前在 asp/vbscript(旧 asp)中制作的 cms,直到我们发布 dot net cms(应该很快)我们才坚持使用这个,但目前我正试图让它成为更符合 w3c ...目前我们的 cms 仅 IE ...在页面编辑器中

您可以在预览状态和 html 模式之间来回切换,并且编辑器使用 innerHTML 来交换模式,但是 innerhtml 使所有标签都处于上限,并使所有 <LI>...</LI> 标签像 <LI>...

没有结束标签,因为它是可选的...我可以使用正则表达式获取所有 html 标签和属性键并将它们交换为小写,但我想知道是否有人知道更简单的方法...我尝试添加严格不幸的是,mode doctype 因为编辑器的代码真的很旧,所以整个编辑器都崩溃了……

希望我们很快就会发布我们的新 cms,但在我们将所有网站转移到新 cms 之前还需要一段时间,所以在那之前我会尝试改进我们的旧代码

是否有任何等效于 innerHtml 的代码可以使代码更符合 w3c 又名保持结束标记到我的<li></li> 所以我不开始使用正则表达式解析我的 ccode 并替换 ? 太棒了

【问题讨论】:

  • 那么,问题是什么?
  • 任何等价于innerhtml,所以我不必用正则表达式解析我的代码来替换我的标签?
  • innerHTML 接受你给它的任何东西,它不会神奇地将所有元素名称变成大写字母。再说一遍,问题是什么?
  • 确实没有确切的 W3C 标准替代 innerHTMLinnerHTML 如今已成为事实上的标准,不再只是某些浏览器的专有属性。它也被编入即将到来的(当前草案)HTML5 - w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0 换句话说,使用 innerHTML 并不像看起来那么糟糕。
  • 对不起,我无法输入:P(法语)我的意思是感谢您的回答,我想我会开始使用正则表达式解析我的 html 并在我的编辑器中修复问题。

标签: javascript innerhtml


【解决方案1】:

如果我的理解正确,答案是“不要这样做”,除非您要在“预览”模式下对代码进行任何更改。

如果该预览只是普通预览(不是所见即所得),您应该这样做:

当切换到“预览”模式时,隐藏编辑器(….style.display='hidden' 或类似的东西),保持内部代码不变,并将其复制到预览元素的 innerHTML。

切换回来时,您只需丢弃 innerHTML 中的代码并再次显示带有旧内容的编辑器。

【讨论】:

  • ty 不幸的是,问题在于用户可以在 Html 模式下编辑他们的 html,一旦他们切换回来,我必须用新的 html 提供预览模式仍然是一个非常好的答案
  • 如果“Html 模式”是指带有编辑器的模式,那么没有问题。您可以再次获取 preview 元素,并将其 innerHTML 属性替换为新属性;即更新它很简单: document.getElementById('preview').innerHTML = document.getElementById('editor').value;
猜你喜欢
  • 2011-01-05
  • 1970-01-01
  • 2015-09-21
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
相关资源
最近更新 更多