【问题标题】:Can an inserted <script> tag be run multiple times without using eval in JavaScript?插入的 <script> 标签可以在 JavaScript 中不使用 eval 多次运行吗?
【发布时间】:2015-04-27 15:37:15
【问题描述】:

我必须使用将 js 文件捆绑到 html 文件(小工具)中的插件。对于一个用例,我需要删除并重新实例化一个小工具以运行更新的代码。

所以说我有foo.html:

<html>
  <head>
    <script src="foo.js"></script>
  </head>
  <body>...</body>
</html>

foo.js 这是注入到我实际文档头部的文件:

alert("hello");

问题是我只能动态缓存html文件并将我的小工具声明为foo.html?x=123,但我之后的JS文件仍然是foo.js,所以浏览器不会重新运行它。

问题
&lt;script&gt; 标签插入文档并运行后,有没有办法在不使用模块加载器或 eval 的情况下再次运行它?

谢谢!

【问题讨论】:

    标签: javascript html caching browser eval


    【解决方案1】:

    您可以将代码包装在&lt;script&gt; 标记中的函数中,然后调用您的函数。这将允许您多次调用您的代码。像这样:

    <script>
        function loaded(){
             // JavaScript here
        }
        loaded();
    </script>
    </body>
    

    【讨论】:

    • 嗯。好点子。我想我必须重新提出我的问题......我需要再次加载脚本,因为用户更新了代码。你的答案是正确的,所以我会去。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2019-12-04
    • 2013-06-16
    • 1970-01-01
    相关资源
    最近更新 更多