[英]Is there a way to call function defined inside onload from an external file
以下是基于场景创建的示例代码。 showData() 函数是在 javascript 加载函数中定义的。 我想通过单击按钮从另一个文件中调用 showData()。 我知道如果 showData 是全局的,这会起作用。 无法将函数设为全局,因为在这种情况下它是动态生成的代码。 无论如何,JS 中是否允许调用此类函数?
// Not possible to change the structure of this file as its coming dynamically window.addEventListener("load", function() { showData(); // 1st time call function showData() { console.log('starting execution') } }); // Calling from another file showData(); // 2nd time call - not possible
不。
该函数在另一个函数中声明。 它的作用域就是那个函数。
除非您更改该代码以使其成为全局代码,否则根本无法从包含函数外部访问它。
如果代码的结构无法更改,也许您可以尝试将函数附加到全局window
对象,例如:
window.addEventListener("load", function() {
// attached to window
window.showData = function() {
console.log('starting execution')
};
window.showData(); // 1st time call
});
// Calling from another file
window.showData();
但是请确保第二次调用(来自其他文件)有一点延迟(请记住,在函数可用之前,必须先将 eventListener 附加到window
)。
你可以试试:
// second call
setTimeout(function() {
window.showData();
}, 1000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.