【发布时间】:2011-10-13 17:43:20
【问题描述】:
更新:在posting on the TinyMCE forum(在提供赏金之前我应该做的事情)之后,主要问题可能会得到解决,但我仍然非常愿意接受关于如何处理的其他问题禁用可调整大小的行为(帖子末尾的数字 2 和 3)。
我在 IE8(不是其他版本)中使用 TinyMCE 保存内容时遇到问题。在 IE 中,编辑器中的某些元素在每个角落都有手柄和可拖动的“边框”,当您专注于开始编辑时,可能会出现条纹边框:
问题:
如果我在粗边框仍然可见时提交表单(图像中的状态 3),表单将不会保存内容。我必须单击编辑器的另一个区域以使所有边框消失,然后然后提交表单。
我正在使用 TinyMCE 3.4.6 jQuery 包,我在其他浏览器中没有这种行为。
更新:
我已经把问题的原因缩小了很多,发现了一些事情:
- 无论是否使用 jQuery 构建都会出现此问题,并且与使用的 tinymce 插件无关。
- 似乎只有在元素应用了(最小)高度/宽度(声明为内联或来自外部 CSS)时,才会出现较粗的“边框”。
-
使用IETester,当来自活动元素的焦点丢失时,我收到声称
'length' is null or not an object的错误;即当您单击 TinyMCE 编辑器之外的任意位置时。我在真正的 IE8 安装中没有看到这个错误(我目前无法访问),但是:考虑到上述问题和解决方法,这在一定程度上是有道理的。我必须点击提交两次并关闭警告才能让表单在 IETester 中发布。
- 这些边框和句柄实际上会延伸到编辑器/iframe 的外部:
我创建了一个直播bare-bones demo,下面是它的内容:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript">
$(function() {
$('textarea.tinymce').tinymce({
script_url : 'tiny_mce/tiny_mce.js',
content_css : 'test.css'
});
});
</script>
<form action="" method="post">
<textarea class="tinymce" name="content"><p>Testing</p></textarea>
<button type="submit">Submit</button>
</form>
/* Content of test.css */
p {
min-height: 24px; /* this line makes the handles appear */
background-color: #f00;
color: #fff;
}
如何重现:
- 在IE8中打开demo
- 点击现有段落,应该会出现一个 1px 的小边框,您应该无法编辑文本。
- 再次单击该元素,现在出现粗边框,可以编辑文本。
- 输入几个字符,然后单击提交按钮。更新不会与
$_POST数据一起发送。如果您点击编辑器内的另一个区域,去掉粗边框,数据会正常发送。
问题/问题:
-
重要提示:如何在不需要用户解决方法的情况下让表单发布编辑后的文本?更新: 这似乎已在 TinyMCE 首席开发人员的 recent commit 中得到解决。我仍然无法在真正的 IE8 安装上进行测试,但这有效并消除了 IETester 中的错误。
不太重要:有什么方法可以完全防止或移除手柄和可拖动边缘?我猜这是 IE 的
contentEditable实现的问题,而不是 TinyMCE,甚至可能不是问题的原因。- 额外:如何防止这些句柄延伸到编辑器之外?
【问题讨论】:
-
你应该在 tinymce 论坛问这个问题:tinymce.com/forum
-
@Thariama:你是我希望得到答案的人之一 :) 使用 SO 后,返回论坛非常困难,但我会试一试。我已经有一些“风滚草”的帖子了。
-
不幸的是,我无法回忆起与您在此处报告的问题相似的帖子/线程的位置 - 我确信有一个解决方案(我认为它在 tinymce 论坛的某个地方)。我们主要使用FF,所以IE不是我的专长。获得有用的答案可能很快就会发生,但有时很难找到一个难题的答案。
标签: javascript internet-explorer-8 tinymce contenteditable