在Ace编辑器HTML脚本中查找所有类和id名称
Find all class and id names in an Ace Editor HTML script
我要做的事情:收集Ace编辑器html脚本中的所有类和id名称。
现在,我的计划是检测用户更改(.on('change'...)
),并使用光标位置获取当前令牌。如果令牌是非"未引用"的"属性值"类型,我想遍历以前的令牌,以找到该"attribute value"所属的"attribute-name"类型令牌,并确定它是类还是id(我不能只检测"attributes-name"令牌的创建,因为用户稍后可以返回并更改属性值而不更改名称,我需要检测这些更改)。
我可以做任何事情,除了获得以前的代币。我查阅了一些文档,TokenIterator应该能够做到这一点,但当我尝试执行类似var iter = new TokeIterator()
的操作时,我的控制台显示TokenIterator
是未定义的。我在谷歌上搜索了一遍又一遍,但没有找到结果。如果真相是真的,我显然没有用正确的词语来找到它,但它们是我唯一的词语。
Ace中是否内置了某种方法来遍历令牌?我知道当我控制台记录编辑器实例对象时,我没有看到它上的所有属性和方法,因为我可以在脚本中使用在日志中看不到的方法。有人能满足我的要求吗?
如果没有,如何加载TokenIterator?我想不久前我尝试使用SnippetManager时也发生了类似的事情,结果发现我实际上必须这样做才能使其工作:
var tillPageLoaded = setInterval(function() { // Makes sure page doesn't load forever on startup
if( document.readyState === 'complete') {
clearInterval(tillPageLoaded);
ace.config.loadModule('ace/ext/language_tools', function () {
editor.insertSnippet( myString );
});
}
}, 5);
这是同样的情况吗?如果是,.loadModules(...)
中需要什么?我需要在某个地方引用脚本吗?它需要以其他方式加载吗?
Ace是否有内置功能,可以实现我想要的一切?
除此之外,如果有人对如何与Ace合作有更好的想法,那将是非常受欢迎的。
您可以使用获得TokenIterator
var TokenIterator = ace.require("ace/token_iterator").TokenIterator
参见https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/folding/xml.js#L38以获取其用法的示例。
- document.getElementById并使用id名称
- 如何使用jQuery迭代id名称的变体(如idname1、idname2)
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- 如何在select标记上使用javascript获取id名称
- 如何获取 ID 名称的子字符串
- jQuery 按 ID 名称删除 img 标签不起作用
- 将 URL 的最后一个字符串与 Li 的 ID 名称进行比较
- 按 id 名称检查元素是否具有子节点
- 如何检索元素的 ID 名称
- 如何在按键事件中使用 ID 名称
- 使用带有部分ID名称的document.getElementById
- 如何根据特定链接的id/名称选择并自动点击该链接
- 如何使用jquery将数字添加到输入ID名称中
- 如何根据onchange事件的序列ID名称获取值
- 检索一个值,而不对id名称进行硬编码
- JQuery-具有windows文件名的Html ID名称正在静默地删除斜杠
- 在javascript中切换id名称
- 在javascript中选择部分ID名称
- 检测,自动将输入Id更改为当前Id名称
- 如何获得几个td具有相同的id名称的文本