2

来自未来穴居人的问候,

我正在尝试构建一个简单的所见即所得,不幸的是我无法让它默认使用段落而不是简单的换行符。然后我读到了这个:

在 designMode IFrame 中按 Enter 时强制浏览器插入 <p> 标记

这个问题是一年多前提出的。通过链接,我看到 webkit 中的某些事情已经“解决”:https ://bugs.webkit.org/show_bug.cgi?id= 59961 已解决: http: //trac.webkit.org/changeset/ 109529

抱歉,我跟不上进度,但这意味着什么:它是否已解决,有没有办法在不进入 JS 和监控击键的情况下做到这一点?

如果没有,那么 JS 解决方案是什么?监视“输入”,然后您将如何将所选内容包装在段落标签中?到目前为止,我尝试了这个,但它不起作用

$("#richTextField").keydown(function(e) {
alert("you pressed something");
if (e.keyCode == 13) {
alert("you pressed ENTER"); 
richTextField.document.execCommand('formatblock',false,"P");
}
});

根本不起作用 - 甚至不会引发警报。

只是为了澄清......我想要:

This is my first paragraph
<br>
This is my second paragraph
<br> 

这就是现在正在发生的事情,成为常态

<p>This is my first paragraph</p>
<p>This is my second paragraph</p>

谢谢

4

1 回答 1

2

其实我已经用 JS 弄明白了。尽管下面的方法很简单,但它确实会导致复杂性,例如将段落标签插入列表项和大量换行符等...我想您可以稍后在 php.ini 中将其删除。这是任何需要它的人的代码:

$("#richTextField").contents().keydown(function(e) {
if (e.keyCode === 13) {
richTextField.document.execCommand('formatblock',false,"P");
}
});

或者你可以这样做,在我看来效果更好,因为使用上面的代码,如果写一些东西但不按回车键,你根本不会得到段落标签。

$("#richTextField").contents().keydown(function(e) {
richTextField.document.execCommand('formatblock',false,"P");
});

我能找到的唯一方法。如果有人知道另一个没有进入 javascript 并监视“输入”键,请发布。

于 2013-10-10T02:34:05.297 回答