3

尝试在我放置的小提琴页面中测试这一点。

http://fiddle.tinymce.com/GBdaab/1

在 IE8 或更低版本中,插入的 html 元素变得可调整大小。有趣的是,现代浏览器不允许这种情况发生。

当您插入一个 html 元素时,这种行为应该是有原因的。我的意思是,您不希望元素有任何更改或调整大小。

但它发生在 IE8 中。

而这实际上与编辑器的功能无关,当您点击表格时,光标会变为“移动”形状。并且无论您将鼠标悬停在哪里,它都不会更改为“默认”状态。

据我所知,显示这样的光标是为了通知用户目标元素是可移动的。但它只显示“移动”形状,即使表格不可拖动。我也不想要这个功能。

有什么选择吗?或者它是一个错误?还是与css或table插件有关?

重现步骤:

  1. 请务必在 IE8 或更低版本中进行测试
  2. 尝试点击红色的 div 框。
  3. 然后出现句柄。
  4. 你可以调整 div 框的大小。

预期结果:

如果在代码中设置了 stopPropagation、preventDefault 或 returnValue = false 代码,则不允许在框上调整大小处理程序...

实际结果:

最终启用并显示调整大小处理程序。

4

2 回答 2

5

不幸的是,我无法在任何 IE8 中对此进行测试——或者更糟,但尝试添加以下内容:(Object_resizing : false (in tinymce 4) won't let you resize任何想法——并且处理程序根本不会出现)

tinymce.init({
    selector: "textarea",
    object_resizing : false, /* THIS might do the trick */
    plugins: […
于 2013-11-11T00:37:50.467 回答
2

好的,这不是这个问题的完整解决方案,但至少我找到了一种方法来做到这一点。

contenteditable是完成这项工作的属性。给予contentEditable=false嵌套body可以成功阻止调整大小处理程序出现在 Internet Explorer 8 中。

当用户鼠标按下插入的元素时,我只需要避免处理程序,我的意思是你可以在小提琴中看到的红色块。

所以,我别无选择,只能编写一些脚本来解决这个问题。

var redBlock = $('#div.red'); // inserted HTML on tinymce
var parentElement = $('iframe').contents().find('body'); //tinymce body

redBlock.mouseenter(function(e) {
     parentElement.Contents.attr('contentEditable', false);
}).mouseout(function(e) {
     parentElement.Contents.attr('contentEditable', true);
});

使用此脚本,当您的鼠标悬停在插入的元素上时,主体变为不可编辑,因为 IE8 开始将不可编辑主体中的元素视为无法编辑的内容。

因此,没有处理程序出现在此结果中。这是迄今为止我能找到的唯一方法。

  • 没有 tinymce 选项有效。
  • 没有其他 HTML 属性会影响 IE8 自己的大小调整处理程序。
  • 没有其他 CSS 属性也会影响它。

更正此答案如果我缺少某些东西。但我很确定这是唯一的方法。

于 2014-07-24T00:59:34.160 回答