【问题标题】:Force browser to insert <p> tag when pressing Enter in a designMode IFrame在 designMode IFrame 中按 Enter 时强制浏览器插入 <p> 标记
【发布时间】:2011-08-28 22:38:32
【问题描述】:

当我在designMode IFrame 中按回车键时,如何让浏览器插入&lt;p&gt; 标签而不是&lt;br&gt; 标签?我在 Firefox、Chrome 和 IE 上的行为不一致,想知道是否有某种方法可以使这种情况正常化。

【问题讨论】:

  • 你说designMode iFrame-你是说textarea吗?另外,您是否使用任何 Javascript 库(如 jQuery)?
  • 我的意思是 IFrame 和 designMode = 'on',所以是所见即所得的 textarea 类型的东西,是的,我使用的是 jQuery。

标签: html iframe designmode


【解决方案1】:

看来你做不到。行为没有标准化,对此的控制充其量只是基本的

这是今年 5 月关于此事的有趣帖子:http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/031577.html。它讨论的是 contenteditable 而不是 designMode,但它们实际上非常相似。

来自 Opera 的 Simon Pieters (zcorpan) 在线程 (http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/031604.html) 上的一封电子邮件说:

Opera 11.10 引入了 document.execCommand('opera-defaultblock','','div') 切换到使用 &lt;div>s 而不是 &lt;p&gt;s。 (“p”也允许切换回来。)显然 WebKit 也考虑实现这一点。 https://bugs.webkit.org/show_bug.cgi?id=59961

在线程的进一步部分,还有这封由 Markus Ernst 撰写的电子邮件 http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-May/031685.html,其中包括以下评论:

我假设生成&lt;p&gt;s 和&lt;br&gt;s 都有用例。这 IE/Opera 方式的优点是两者都允许,非常完美 用于文本和基本的 HTML 编辑。从所见即所得的 POV 来看,这可能是最好的 提供两种选择,因此不鼓励作者添加 服务器端处理以更改输出,这会中断 所见即所得。

如果行为是可设置的,那么离开 为 UA 选择标准行为。有原因的作者 to care 可以设置他们的首选行为,而其他作者可能 宁愿保持原样,所以他们的 现有用户。

关于各种浏览器制造商的人们认为应该发生的事情,关于一些非常奇怪的现有行为的 cmets 以及关于实现它所涉及的问题的一般性讨论,还有更多关于线程的内容。

目前所有这一切的 alpha 规范位于 http://aryeh.name/spec/editing/editing.html

【讨论】:

  • 我看过 CKEditor 和 TinyMCE,它们似乎都能够强制浏览器在 &lt;br&gt; 标签上插入 &lt;p&gt; 标签——知道这是如何实现的吗? (不,我真的不能只使用其中一个编辑器)
  • 该线程确实提到了这一点。我认为它说他们捕获并覆盖了 enter 键并应用他们自己的一组操作。但据我所知,它并没有详细说明。
猜你喜欢
  • 2016-06-12
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
相关资源
最近更新 更多