gpt4 book ai didi

javascript - 有没有办法在 Ace 代码编辑器中查询 HTML?

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

当我在 ace 编辑器中编辑 HTML 时,有没有办法以简单的方式查询该 HTML?使用选择器?

[fake-html-dom].querySelectorAll("A").length

我读到当你使用 jQuery $('<html code>') html 被插入到真实的 DOM 中,我想避免在 window/iframe 中实际运行 HTML。

如果能够直接在编辑器中修改找到的元素(例如自定义突出显示),那就太好了。

最佳答案

你可以像这样创建一个假的 html 文档对象:

var docImpl = document.implementation;
var fakeDoc = docImpl.createHTMLDocument("myhtml"/*it is just a title*/);

当您首先使用 Ace html 编辑器时,您应该从编辑器中读取 html 字符串,然后提取正文内容,最后将其插入到假正文中。这些是您要采取的步骤:

//Ace usually uses ace_text-layer as the classname for the html string part
var htmlContent = document.querySelector(".ace_text-layer").innerText;
//you can also change this part if it didn't work, depends on your Ace version

现在你应该提取正文内容,如果它有 <html><body>其中的标签:

var pattern = /<body[^>]*>((.|[\n\r])*)<\/body>/im;
var array_matches = pattern.exec(htmlContent);
var extractedContent = array_matches[1];

然后将其插入到假体中

fakeDoc.body.innerHTML = extractedContent;

最后执行您可能需要的任何所需查询:

fakeDoc.querySelectorAll("A").length

关于javascript - 有没有办法在 Ace 代码编辑器中查询 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21078647/

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