如何运行从客户端收到的JavaScript(html、js)?
我使用一个基于JS的库(axios)从后端获取一个响应,该响应返回一个完整的JS文件。收到此文件后,我如何在当前页面中实际使用它 这是代码:如何运行从客户端收到的JavaScript(html、js)?,javascript,promise,axios,es6-promise,Javascript,Promise,Axios,Es6 Promise,我使用一个基于JS的库(axios)从后端获取一个响应,该响应返回一个完整的JS文件。收到此文件后,我如何在当前页面中实际使用它 这是代码: axios.get('/foobar') .then(jsFile => { //use jsFile on current webpage }) 我已经用eval()阅读了一些答案,但我宁愿避免使用这种方法。有人知道如何继续吗?制作一个script标记,内容为jsFile function
axios.get('/foobar')
.then(jsFile => {
//use jsFile on current webpage
})
我已经用
eval()
阅读了一些答案,但我宁愿避免使用这种方法。有人知道如何继续吗?制作一个script
标记,内容为jsFile
function addScriptToSession( jsFile )
{
var s = document.createElement('script');
s.type = 'text/javascript';
try {
s.appendChild(document.createTextNode(jsFile));
document.body.appendChild(s);
} catch (e) {
s.text = jsFile;
document.body.appendChild(s);
}
}
把它当作
axios.get('/foobar')
.then(jsFile => {
addScriptToSession(jsFile)
})
制作一个
script
标记,内容为jsFile
function addScriptToSession( jsFile )
{
var s = document.createElement('script');
s.type = 'text/javascript';
try {
s.appendChild(document.createTextNode(jsFile));
document.body.appendChild(s);
} catch (e) {
s.text = jsFile;
document.body.appendChild(s);
}
}
把它当作
axios.get('/foobar')
.then(jsFile => {
addScriptToSession(jsFile)
})
jsFile
是一个脚本文本吗?jsFile
的内容是什么?@gurvinder372是的,当我在控制台中记录它时,我看到在控制台中打印了js文件中的所有文本。为什么您首先使用axios而不是
?eval有什么问题?通过其他方式注入脚本没有问题机制?jsFile
是一个脚本文本吗?jsFile
的内容是什么?@gurvinder372是的,当我控制台时是这样。记录它我看到控制台中打印了js文件中的所有文本。为什么您首先使用axios而不是
?注入脚本时,eval
有什么问题尽管有其他机制?很酷,但这与eval
有什么不同呢?@Redu with eval您无法正确使用调试器。每次调用eval()都会生成一个新的JS解释器实例。很酷,但这与eval
有何不同?@Redu with eval您无法正确使用调试器。每次调用eval()都会生成一个新的JS解释器实例。