【问题标题】:Is it possible to download java script code snippets by ajax, then execute it at run time?是否可以通过ajax下载java脚本代码片段,然后在运行时执行?
【发布时间】:2014-03-10 12:02:17
【问题描述】:

这个想法是在 ready() 函数完成之后,假设用户点击了一个按钮。然后它后面的java脚本代码会运行ajax来检索一些java脚本代码sn-ps(作为文本),然后执行刚刚下载的代码。

有可能吗?任何框架都可以做到吗?

【问题讨论】:

  • 是的,使用 eval()... 你不需要框架。
  • jQuery 的.getScript 是一个很好的帮手。

标签: javascript ajax download runtime execute


【解决方案1】:

感谢 Tibos 为我提供线索。我用你的代码搜索了我想要的,就在这里。

Jan Wolter 描述了他在运行时动态加载和执行 javascript 的解决方案。 (http://unixpapa.com/js/dyna.html)。似乎动态 JS 加载的不稳定与 JS 代码文件大小有关。如果 JS 代码文件很大,不同的浏览器可能会有不同的表现。 Jan 提供了一种避免这种情况的方法。 再次感谢。

【讨论】:

    【解决方案2】:

    你甚至不需要 ajax 来做。您可以简单地创建一个新的script 元素,并将src 属性设置为您的JS 文件并将其插入到DOM(通常在head 元素中)。

    var script = document.createElement('script');
    script.setAttribute('src', 'myfile.js');
    document.head.appendChild(script);
    

    【讨论】:

    • 嗨 Tibos,我还没有尝试过上面的代码。 DOM加载后会运行下载代码sn-ps吗?我看到有人在运行时使用 eval() 来执行 javascript 代码,但在 Chrome 上并不可靠:(请参阅 user1251840 的最后一条评论,stackoverflow.com/questions/3248384/…)。你知道任何框架可以做得更好吗?谢谢。
    • sn-ps里面的代码一下载就执行。但是,如果在这些代码 sn-ps 中设置了一个变量,例如,该变量在调用脚本中将不可用。
    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2013-01-05
    相关资源
    最近更新 更多