gpt4 book ai didi

javascript - 如何直接从 htmlparser2 获取 js 上下文?

转载 作者:行者123 更新时间:2023-11-30 16:20:12 25 4
gpt4 key购买 nike

如何直接从htmlparser2获取js上下文?

 var parser = new htmlparser.Parser({
onopentag: function(name, attribs){
if(name === "script" && attribs.type === "text/javascript"){
//console.log(text);
//console.log("JS! Hooray!");
}
},
ontext: function(text){
//fs.writeFileSync("../output/test.js",text.toString());
console.log(text);
},
onclosetag: function(tagname){
if(tagname === "script"){
//console.log("That's it?!");
}
}
}, {decodeEntities: true});
var input_src = fs.readFileSync('../input/test2.js', 'utf-8');
parser.write(input_src);
parser.end();

我尝试从 htmlparser2 获取 js,但内容不是我想要的。内容将包括一些其他信息,除了 js。为什么代码不能正常工作?你能给我一些解决问题的好方法吗?

最佳答案

您没有做任何事情来将 ontext 函数限制为仅读取脚本。每当遇到开始脚本标签时,您都需要设置一个标志:

 var inScriptElement = false;
var parser = new htmlparser.Parser({
onopentag: function(name, attribs){
if(name === "script" && attribs.type === "text/javascript"){
inScriptElement = true;
//console.log(text);
//console.log("JS! Hooray!");
}
},
ontext: function(text){
if (inScriptElement) {
//fs.writeFileSync("../output/test.js",text.toString());
console.log(text);
}
},
onclosetag: function(tagname){
if(tagname === "script"){
inScriptElement = false;
//console.log("That's it?!");
}
}
}, {decodeEntities: true});

关于javascript - 如何直接从 htmlparser2 获取 js 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852659/

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