通过获取服务器端响应,可以在其中动态添加任何脚本标签。
答案 0 :(得分:0)
我不知道您的确切用例。但是有时候我们只需要加载某些工作流中需要的脚本,而不是不必要地下载。
例如 我有一个银行应用程序,仅在少数情况下需要加载付款网关SDK。因此,无论何时执行那部分代码,我当时都使用javascript函数
_loadScript(scriptSrcUrl, onLoadSuccessCallback, onErrorCallback) {
if (scriptSrcUrl)
if (document.querySelector('script[src="' + scriptSrcUrl + '"]')) {
onLoadSuccessCallback();
} else {
var a = document.createElement('script');
a.setAttribute('async', ''),
(a.src = scriptSrcUrl),
onLoadSuccessCallback && (a.onload = onLoadSuccessCallback),
onErrorCallback && (a.onerror = onErrorCallback),
document.head.appendChild(a);
}
}
_scriptLoaded(result) {
if(result) {
// use the script
} else {
// handleError
}
}
lazyLoadScriptsInDom() {
this._loadScript(
"https://checkout.razorpay.com/v1/checkout.js",
this._scriptLoaded.bind(this, !0),
this._scriptLoaded.bind(this, !1)
);
}