我們通過https://athirdpartysite.com/lib.js異步加載第三方腳本。第三方腳本包含一個函數,FSFB.fbcaller('123abc'),當用戶點擊一個元素時,我們想要調用它。我們使用innerHTML生成#invoker。在將onclick事件附加到#invoker之前,如何確保函數FSFB.fbcaller('123abc')可用?在調用onclick函數之前檢查外部js中的函數是否可用
window.onload = function() {
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode,
referenceNode.nextSibling);
}
ar el = document.createElement("div");
el.id = "invoker-container";
el.innerHTML = '<ul><li></li><li><div id="invoker"></div></li></ul>';
var afterel = document.querySelector(".master-container");
insertAfter(afterel, el);
}
您是否收到錯誤?如果是這樣,哪些錯誤? –
使用與檢查類型的答案是最好的,因爲它不會拋出錯誤,如果未定義,它確保目標實際上是一個函數而不是變量 –
@MaherFattouh呃?這兩個答案都不會在未定義的時候拋出錯誤。 *「函數不是變量」* - 變量和函數是正交的概念。變量可以保存功能。 – cdhowie