将 HTML 字符串解析为 JScript ES3 中的文档
Parse a HTML string into a document in JScript ES3
由于 JScript 是 'out of browser',Javascript 的 Microsoft ES3 变体,很难做一些像将 HTML 字符串解析为对象这样简单的事情。
如前所述,JScript 不驻留在浏览器中,因此它没有标准文档类型,也没有 domparser。
我可以这样创建文档对象:
var document = new ActiveXObject('htmlfile')
document.innerHTML = http.responseText
虽然这会将 html 响应呈现到文档中,但我无法使用 getElementsByClassName、TagName 甚至 ID - 这正是我需要对 html 响应执行的操作看着(提到的混合)。
我试过使用 John Resig 的 "pure javascript HTML parser",但在 ES3 中不会 运行,而且我对 JScript/ES3 的了解不够,无法理解为什么不这样做。
https://johnresig.com/blog/pure-javascript-html-parser/
最终,我想解析文档对象中的 HTML 文件,并能够通过它们的 class、id、标记名等来提取元素。对我来说,这听起来应该是很简单,但事实并非如此。
如有任何帮助,我们将不胜感激。
getElementById
和 getElementsByTagName
似乎有效:
var document = new ActiveXObject('htmlfile');
document.open();
document.write('<html><div id="div1" class="class1">test</div></html>');
document.close();
WScript.Echo(document.getElementById("div1").id);
WScript.Echo(document.getElementsByTagName("div")[0].id);
WScript.Echo(document.getElementsByTagName("div")[0].className);
由于 JScript 是 'out of browser',Javascript 的 Microsoft ES3 变体,很难做一些像将 HTML 字符串解析为对象这样简单的事情。
如前所述,JScript 不驻留在浏览器中,因此它没有标准文档类型,也没有 domparser。
我可以这样创建文档对象:
var document = new ActiveXObject('htmlfile')
document.innerHTML = http.responseText
虽然这会将 html 响应呈现到文档中,但我无法使用 getElementsByClassName、TagName 甚至 ID - 这正是我需要对 html 响应执行的操作看着(提到的混合)。
我试过使用 John Resig 的 "pure javascript HTML parser",但在 ES3 中不会 运行,而且我对 JScript/ES3 的了解不够,无法理解为什么不这样做。
https://johnresig.com/blog/pure-javascript-html-parser/
最终,我想解析文档对象中的 HTML 文件,并能够通过它们的 class、id、标记名等来提取元素。对我来说,这听起来应该是很简单,但事实并非如此。
如有任何帮助,我们将不胜感激。
getElementById
和 getElementsByTagName
似乎有效:
var document = new ActiveXObject('htmlfile');
document.open();
document.write('<html><div id="div1" class="class1">test</div></html>');
document.close();
WScript.Echo(document.getElementById("div1").id);
WScript.Echo(document.getElementsByTagName("div")[0].id);
WScript.Echo(document.getElementsByTagName("div")[0].className);