gpt4 book ai didi

javascript - 如何访问使用 $.getScript 运行的脚本中的函数或变量

转载 作者:行者123 更新时间:2023-12-01 02:06:50 26 4
gpt4 key购买 nike

在使用 $.getScript 运行脚本后,是否有某种方法可以访问该脚本的 namespace ?由于 plugin 是在全局范围内定义的,我本以为我能够运行它。

index.js

$.getScript('plugin.js').then((...result) => console.log(result));

$.getScript('plugin.js').then(plugin());

plugin.js

function plugin()
{
console.log("plugin.js");
return "plugin";
}

_输出__

ReferenceError: plugin is not defined
at https://replit.org/data/web_hosting_uncache/abalter/loading-scripts-and-callbacks-1/index.js:5:25
[ 'var plugin = function()\n{\n console.log("plugin.js");\n return "plugin";\n}',
'success',
Promise {
readyState: 4,
getResponseHeader: [Function],
getAllResponseHeaders: [Function],
setRequestHeader: [Function],
overrideMimeType: [Function],
statusCode: [Function],
abort: [Function],
state: [Function],
always: [Function],
catch: [Function],
pipe: [Function],
then: [Function],
promise: [Function],
progress: [Function],
done: [Function],
fail: [Function],
responseText: 'var plugin = function()\n{\n console.log("plugin.js");\n return "plugin";\n}',
status: 200,
statusText: 'success' } ]

https://repl.it/@abalter/loading-scripts-and-callbacks-1

最佳答案

问题出在这一行:

$.getScript('plugin.js').then(plugin());

then 接受函数作为参数,而不是函数调用(除非所述函数调用是对高阶函数的调用)返回一个要放入 promise 链中的函数)

您在发出脚本请求的同时调用 plugin()。您不希望这样 - 您只想在请求完成后才调用 plugin 。但在 getScript 运行时,plugin 尚未在窗口范围内定义。在 then 内部,放置一个一旦调用就会运行 plugin 的函数:

$.getScript('plugin.js').then(() => plugin());

关于javascript - 如何访问使用 $.getScript 运行的脚本中的函数或变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com