gpt4 book ai didi

javascript - 在 Windows 应用商店 Javascript 应用程序中使用 Ace 编辑器

转载 作者:行者123 更新时间:2023-11-28 20:42:42 26 4
gpt4 key购买 nike

因此,我尝试将 ACE 嵌入到我正在开发的 Windows 8 JavaScript 应用程序中,但遇到了很多麻烦。这是我用来转动我的 <pre id="ace-editor"> 的代码元素到 Ace 编辑器中。

WinJS.Utilities.ready(function ()
{
var editor = ace.edit('ace-editor');

editor.setTheme('ace/theme/monokai');

editor.getSession().setMode('ace/mode/javascript');
editor.getSession().setTabSize(4);
editor.getSession().setUseSoftTabs(false);
editor.setShowPrintMargin(false);

});

首先,出现一个重复的光标,带有一点位置和闪烁时间偏移。请看下面的图片。

其次,创建编辑器后,我必须调用每个方法两次,以便可以更改编辑器对象的属性。例如,看下面的代码片段:

editor.setTheme('ace/theme/clouds');
editor.setTheme('ace/theme/clouds');

这就是我需要做的来改变主题。调用setTheme()方法一次就不行了。

现在,我是 Windows 应用商店开发的新手,但经过一番困惑之后,如果删除默认添加的核心 UI 样式表,我可以让光标消失。核心 JS 文件也是如此。如果我删除它们,双重射击问题就会消失。这里有人有解决方案或线索来解释为什么会发生这种情况吗?我正在使用 Ace 的非冲突版本,但我也尝试过另一个版本。我想这听起来更像是 WinJS 问题而不是 Ace,但如果这里有人可以帮助我,那就太好了。

谢谢!

更新:

对于重复光标,ACE 似乎无法正确检测 Windows 应用商店应用程序环境,因为它在其用户代理中不使用字符串“Microsoft Internet Explorer”。相反,它是“MSAppHost/1.0”之类的。所以我改变了我的ace.js现在我检测到两者。这是更新后的代码:

(navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0)

谢谢,用户1743328!

最佳答案

对于第二个光标,请参阅 https://github.com/ajaxorg/ace/blob/master/lib/ace/virtual_renderer.js#L79可能它只是无法将 win8 useragent 识别为 IE

关于javascript - 在 Windows 应用商店 Javascript 应用程序中使用 Ace 编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com