如何从客户端(html,js)运行收到的JavaScript?

时间:2018-03-28 09:26:09

标签: javascript promise axios es6-promise

我正在使用基于JS承诺的库(axios)从后端获取响应,该响应返回一个完整的JS文件。收到此文件后,如何在当前页面中实际使用它?

这个代码:

axios.get('/foobar')
     .then(jsFile => {
          //use jsFile on current webpage       
      })

我已经使用eval()阅读了一些答案,但我更愿意避免使用此方法。任何人都知道如何继续?

1 个答案:

答案 0 :(得分:3)

制作一个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)     
  })