2 回答

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
事實(shí)證明,刪除代碼比添加代碼容易得多。感謝@cucaracho 和@barmar 提供重要見(jiàn)解。這是我想出的解決方案。
我不再需要 AJAX 調(diào)用了——這就是我想要?jiǎng)h除的。從 loadPluginJsFn 中刪除回調(diào)被證明是一個(gè)挑戰(zhàn)。我打掃了房子并確認(rèn)它仍然正常運(yùn)行。
loadPluginJsFn(token) {
r = token,
doc = document.createElement("script");
doc.type = "text/javascript";
doc.src = "js/foobar.js";
document.querySelector("head").appendChild(doc);
}

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
這是將該函數(shù)翻譯成更易讀的代碼:
loadPluginJsFn: function(cb) {
if (typeof cb == "function") {
cb(function(response) {
if (response) {
r = response;
// Load the script from foobar.js
var url = "js/foobar.js";
var t = document.createElement("script");
t.type = "text/javascript";
t.src = url;
document.querySelector("head").appendChild(t);
}
});
}
}
cb將是執(zhí)行 AJAX 請(qǐng)求的函數(shù)<some domain>。收到響應(yīng)后,它會(huì)調(diào)用function(response)。這將插件變量r設(shè)置為響應(yīng),然后加載js/foobar.js腳本。
foobar.js然后執(zhí)行使用該MyPlugin對(duì)象的代碼(我假設(shè)您忽略了這些細(xì)節(jié)),并且該代碼大概使用r.
總結(jié):這從<some domain>使用 AJAX 中獲取一個(gè)值,將其放入 中的r變量中MyPlugin,然后運(yùn)行使用該插件的代碼。
添加回答
舉報(bào)