Javascript 如何在HTML文档的开头插入脚本节点?
我试图使用Javascript 如何在HTML文档的开头插入脚本节点?,javascript,html,node.js,Javascript,Html,Node.js,我试图使用NodeJS来修改HTML文件,以便在HTML的开头添加一个脚本标记,使其在所有其他脚本之前执行 我当前的代码如下所示: const fs = require('fs'); const parse = require('node-html-parser').parse; fs.readFile('test.html', 'utf8', (err,html)=>{ if(err){ throw err; } const root = parse(h
NodeJS
来修改HTML
文件,以便在HTML
的开头添加一个脚本标记,使其在所有其他脚本之前执行
我当前的代码如下所示:
const fs = require('fs');
const parse = require('node-html-parser').parse;
fs.readFile('test.html', 'utf8', (err,html)=>{
if(err){
throw err;
}
const root = parse(html);
const head = root.querySelector('head');
if (head !== null) {
head.insertBefore( '<script src = "test.js"></script>', head.firstChild);
fs.writeFile('test.html', root.toString(), function (err) {
if (err) return console.log(err);
});
}
});
const fs=require('fs');
const parse=require('node-html-parser')。parse;
fs.readFile('test.html','utf8',(err,html)=>{
如果(错误){
犯错误;
}
constroot=parse(html);
const head=root.querySelector('head');
如果(头!==null){
头。插入前(“”,头。第一个孩子);
fs.writeFile('test.html',root.toString(),函数(err){
if(err)返回console.log(err);
});
}
});
但是
insertBefore
正在引发异常。如何更正此问题?insertBefore
将节点作为其第一个参数;你在传递一个字符串。使用innerHTML
插入脚本:
head.innerHTML = '<script src = "test.js"></script>' + head.innerHTML;
head.innerHTML=''+head.innerHTML;
insertAdjacentHTML
也可以使用。未定义文档。当我使用root
时,我得到root.createElement不是一个函数
哦,当然了。您可以改为在innerHTML
前加前缀。或者您可以使用parse()
创建
(可能)请发布您收到的错误。在该库的API参考中,我没有看到任何insertBefore
方法,我也不一定希望它支持所有DOM方法。