如何在外部javascript文件的try块中访问函数
我的外部js文件包含以下脚本:如何在外部javascript文件的try块中访问函数,javascript,html,Javascript,Html,我的外部js文件包含以下脚本: try { callback({x: 'abc', y: 'cde' }); } catch(e) { } 我已使用以下方法动态注入此脚本: const script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://example.com/external.js'; document.getElementsByTagName('he
try {
callback({x: 'abc', y: 'cde' });
}
catch(e) {
}
我已使用以下方法动态注入此脚本:
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://example.com/external.js';
document.getElementsByTagName('head')[0].appendChild(script);
我可以注入脚本,但无法访问在外部js的callback()中传递的值
我也有一些限制:
提前感谢我使用以下代码块实现了这一点
const src = function callback(data) {
console.log(data);
};
const injectFunc = () => {
window.callback = src;
};
const injectScript = () => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = 'http://example.com/external.js';
document.getElementsByTagName('head')[0].appendChild(script);
};
在app.js的init之后调用函数,方法如下:
init () {
injectFunc();
injectScript();
}
通过这种方式,您将获得callback的数据变量中的值,如果需要,这些值可以在应用程序中进一步使用。加载外部js。因此,您的代码中应该有一个方法,即
函数callback(){console.log(arguments);}
,该方法应该在添加脚本之前定义。这就是JSONP的工作方式注入是由一个不同的js文件进行的,我在其中以类似的方式定义了函数回调,但它从未被触发。函数回调是在全局级别定义的还是在外部js文件中定义的块级别函数?请向我们展示您尝试访问在该文件中传递的值的方法calback()
调用。你定义函数了吗?怎么用?在哪里?不要把它弄得那么复杂,尤其不要依赖函数的字符串化(在script.text=src
)。为什么不干脆做window.callback=src
?