[英]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.