0

我已成功地将 ACE 编辑器嵌入到我的站点中,但它一直恢复为只读模式。当我第一次将光标放入编辑器时,它可以工作并且我可以输入文本,但是如果我移动鼠标并将光标放在另一个位置,我就不能再输入了。当我检查编辑器的属性时,似乎只读已设置为 true。

更新
似乎它可能与只读无关(只是它表现出相同的行为)。我注意到当我将光标放在编辑器中时,它会接受我输入的文本。当我将光标设置到另一个位置时,textarea 位置会更新,从那时起,我输入的任何文本都会产生“叮”的声音,就像您无法在此处输入声音类型一样。这就像一个 Windows 警报消息。

无论如何,我将其中一个 div 容器设置为不同的显示或位置类型,然后它突然工作正常,但编辑器处于错误的位置。

如果我在编辑器外部单击然后返回编辑器,那么我可以再次输入……至少在我像之前描述的那样移动光标之前。

这是之前(工作):

<div style="position: absolute; background-color: rgb(255, 255, 255); border: 0px none; overflow: auto; display: block; left: 316px; top: 239px; width: 1074px; height: 140px;" id="editor0"><div id="iframe_editor0" frameborder="0"><div class=" ace_editor ace_nobold ace-crimson-editor" id="editor" style="display:block;position:absolute;top:0px;left:0px;right:0px;bottom:0px;height:100%;"><textarea style="bottom: 92px; height: 16px; width: 7.2px; right: 1019.6px;" spellcheck="false" wrap="off" class="ace_text-input"></textarea><div style="display: none;" class="ace_gutter"><div style="margin-top: 0px; height: 172px; width: 34px;" class="ace_layer ace_gutter-layer"><div class="ace_gutter-cell " style="height:16px;">1</div><div class="ace_gutter-cell " style="height:16px;">2</div><div class="ace_gutter-cell " style="height:16px;">3</div><div class="ace_gutter-cell " style="height:16px;">4</div></div><div style="top: 32px; height: 16px;" class="ace_gutter-active-line"></div></div><div style="left: 0px; right: 15px;" class="ace_scroller"><div style="margin-top: 0px; width: 1066px; height: 172px;" class="ace_content"><div class="ace_layer ace_print-margin-layer"><div style="left: 580px; visibility: hidden;" class="ace_print-margin"></div></div><div class="ace_layer ace_marker-layer"><div class="ace_active-line" style="height:16px;top:32px;left:0;right:0;"></div></div><div style="padding: 0px 4px;" class="ace_layer ace_text-layer"><div class="ace_line" style="height:16px"><span class="ace_meta ace_tag">&lt;</span><span class="ace_meta ace_tag ace_tag-name">div</span>&nbsp;<span class="ace_entity ace_other ace_attribute-name">style</span><span class="ace_keyword ace_operator">=</span><span class="ace_string">"position:relative;width:640px;height:500px;font-family:Arial;font-size:12px;margin:0&nbsp;auto;left:8px;top:14px;background-color:#FFFFFF;"</span><span class="ace_meta ace_tag ace_r">&gt;</span></div><div class="ace_line" style="height:16px"></div><div class="ace_line" style="height:16px"><span class="ace_meta ace_tag">&lt;/</span><span class="ace_meta ace_tag ace_tag-name">div</span><span class="ace_meta ace_tag ace_r">&gt;</span></div><div class="ace_line" style="height:16px"></div></div><div class="ace_layer ace_marker-layer"></div><div class="ace_layer ace_cursor-layer ace_hidden-cursors"><div style="left: 47.2px; top: 32px; width: 7.2px; height: 16px;" class="ace_cursor"></div></div></div></div><div style="height: auto; width: auto; top: -100px; left: -100px; visibility: hidden; position: fixed; overflow: visible; white-space: nowrap;">X</div><div style="width: 20px; height: 140px;" class="ace_scrollbar"><div style="height: 64px;" class="ace_scrollbar-inner"></div></div></div></div></div>

在重新定位光标/在新位置单击鼠标后(不起作用):

<div style="position: absolute; background-color: rgb(255, 255, 255); border: 0px none; overflow: auto; display: block; left: 316px; top: 239px; width: 1074px; height: 140px;" id="editor0"><div id="iframe_editor0" frameborder="0"><div class=" ace_editor ace_nobold ace-crimson-editor ace_focus" id="editor" style="display:block;position:absolute;top:0px;left:0px;right:0px;bottom:0px;height:100%;"><textarea style="bottom: 92px; height: 16px; width: 7.2px; right: 1019.6px;" spellcheck="false" wrap="off" class="ace_text-input"></textarea><div style="display: none;" class="ace_gutter"><div style="margin-top: 0px; height: 172px; width: 34px;" class="ace_layer ace_gutter-layer"><div class="ace_gutter-cell " style="height:16px;">1</div><div class="ace_gutter-cell " style="height:16px;">2</div><div class="ace_gutter-cell " style="height:16px;">3</div><div class="ace_gutter-cell " style="height:16px;">4</div></div><div style="top: 32px; height: 16px;" class="ace_gutter-active-line"></div></div><div style="left: 0px; right: 15px; overflow-x: hidden;" class="ace_scroller"><div style="margin-top: 0px; width: 1066px; height: 172px;" class="ace_content"><div class="ace_layer ace_print-margin-layer"><div style="left: 580px; visibility: hidden;" class="ace_print-margin"></div></div><div class="ace_layer ace_marker-layer"><div class="ace_active-line" style="height:16px;top:32px;left:0;right:0;"></div></div><div style="padding: 0px 4px;" class="ace_layer ace_text-layer"><div class="ace_line" style="height:16px"><span class="ace_meta ace_tag">&lt;</span><span class="ace_meta ace_tag ace_tag-name">div</span>&nbsp;<span class="ace_entity ace_other ace_attribute-name">style</span><span class="ace_keyword ace_operator">=</span><span class="ace_string">"position:relative;width:640px;height:500px;font-family:Arial;font-size:12px;margin:0&nbsp;auto;left:8px;top:14px;background-color:#FFFFFF;"</span><span class="ace_meta ace_tag ace_r">&gt;</span></div><div class="ace_line" style="height:16px"></div><div class="ace_line" style="height:16px"><span class="ace_meta ace_tag">&lt;/</span><span class="ace_meta ace_tag ace_tag-name">div</span><span class="ace_meta ace_tag ace_r">&gt;</span></div><div class="ace_line" style="height:16px"></div></div><div class="ace_layer ace_marker-layer"></div><div class="ace_layer ace_cursor-layer"><div style="left: 47.2px; top: 32px; width: 7.2px; height: 16px; opacity: 0;" class="ace_cursor"></div></div></div></div><div style="height: auto; width: auto; top: -100px; left: -100px; visibility: hidden; position: fixed; overflow: visible; white-space: nowrap;">X</div><div style="width: 20px; height: 140px;" class="ace_scrollbar"><div style="height: 64px;" class="ace_scrollbar-inner"></div></div></div></div></div>

前面的代码是 body 标签内的内容。

更新 2
似乎如果编辑器位于 Flash / Flex 应用程序之上,则会导致问题。我将 Flash / Flex 应用程序设置为高度的一半,并且其下方不再有 Flash 应用程序的区域可以正常工作。同样,这只发生在 Firefox Mac 中。在 Mac 上的 Safari 中,它可以正常工作。

4

1 回答 1

0

任何文本区域都会出现问题,而不是 Ace 编辑器使用的文本区域。

如果您在任何 Flash 应用程序上放置一个 HTML 文本区域,请在该 HTML 文本区域中键入一些文本,然后单击文本字段中的另一个位置(移动光标)它会表现出相同的行为。该行为是没有输入其他文本并且会发出哔哔声。

较新版本的 Flash Player 或较新版本的 Firefox 已解决此问题。我不知道它是在哪个版本中修复的,但它是在 2015 年 9 月 27 日左右。

于 2016-12-10T19:43:29.753 回答