Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从网页包加载程序访问DOM_Javascript_Webpack_Webpack Loader - Fatal编程技术网

Javascript 如何从网页包加载程序访问DOM

Javascript 如何从网页包加载程序访问DOM,javascript,webpack,webpack-loader,Javascript,Webpack,Webpack Loader,我正在为一个特定的文件扩展名编写一个网页包加载器,我想在DOM中附加一个自定义导入 module.exports = function(source) { ... document.appendChild(myImport) return `export default 'hello'`; } 但是DOM是不可访问的 引用错误:未定义文档 有没有办法从我的加载程序访问DOM? 我的网页包配置为: const path = require('path') module

我正在为一个特定的文件扩展名编写一个网页包加载器,我想在DOM中附加一个自定义导入

module.exports = function(source) {
    ...
    document.appendChild(myImport)

    return `export default 'hello'`;
}
但是DOM是不可访问的

引用错误:未定义文档

有没有办法从我的加载程序访问DOM? 我的网页包配置为:

const path = require('path')

module.exports = {
    ...
    module: {
        rules: [{
            test: /\.myextension$/,
            use: {
                loader: 'my-loader'
            }
        }]
    }
};

不,loader中的代码将在node.js env上运行,而node.js env对dom(浏览器env)没有权限。为了能够操作dom,您必须通过加载程序输出代码,该加载程序将插入到该类型的文件中,然后在浏览器上执行时,它将进行修改

比如:

module.exports = function(source) {
    return `export default function(){
        document.appendChild(myImport)
    }`;
}