到目前为止,我正在使用Webpack 4为我的项目编写新的构建脚本,直到今天,当我必须使用参数调用全局函数时,我才遇到任何问题。
下面是一个示例,我没有为Google reCaptcha使用参数:
const enableFormButton = () => {
var elements = "#form_submit_btn, #form_submit_btn_alt";
$(elements).removeAttr("disabled");
$(elements).css({"cursor":"pointer"});
$(elements).removeClass("button button-3d button-red button-small").addClass("button button-3d button-green-invert button-small");
}
const recaptcha = document.querySelectorAll(".g-recaptcha");
recaptcha.forEach((captcha) => {
captcha.setAttribute('data-callback', 'enableFormButton');
});
export { enableFormButton }
在我的索引文件index.js中,看起来像这样:
import {enableFormButton} from './some_js_file'
window.enableFormButton = enableFormButton
现在,这是我尝试使用带有参数的全局函数的方法:
const exampleFunction = (arg1) => {
// do something here
}
export {exampleFunction}
并在index.js文件中:
import {exampleFunction} from './some_js_file'
window.exampleFunction = exampleFunction
我尝试过,没有构建错误,但是在控制台中显示错误
“未捕获的TypeError:exampleFunction不是函数”
关于如何解决此问题的任何想法?顺便说一句,我是Webpack的新手。
答案 0 :(得分:0)
由于@CertainPerformance的技巧,我在函数export
中添加了exampleFunction(arg1)
关键字,该关键字应如下所示:
export exampleFunction(arg1){
// something
}
将该函数导入到另一个.js文件:
import {exampleFunction} from './somescript';
然后,它起作用了! :)
原来,我那天学到了一些东西!