正在脚本中加载脚本

Loading script within a script

本文关键字:脚本 加载      更新时间:2023-09-26

我正在努力寻找加载响应/移动页面的最佳方法,然后我发现了一个jQuery插件,它可以根据屏幕宽度取消注释。我发现它非常完美,因为我不需要额外的HTTP请求,而且对于移动用户来说,它会更快。

但是,我偶然发现了一个问题:这个jQuery插件无法加载/呈现其他脚本。你可以在这把小提琴上看到我刚才做的:https://jsfiddle.net/g3f88q5k/

<div id="Test">
<!-- @media only all and (min-width:400px)
<script> Whatever </script>   
-->
</div>

它取消了我想要的部分的注释,但将twitter作为按钮的脚本不起作用。

如果有办法的话,我该怎么做呢?

XHR(或JS代码本身)可以在if语句中生成,但在XHR的情况下,多个脚本加载会影响性能。你最好把所有的JavaScript都放在一个缩小的文件里,让它一次下载。您可以像媒体查询一样让JS检测最小宽度等,但可能不容易维护。

尝试enquire.js.

通过match回调:

enquire.register("your screen media query here", {
    match : function() {
        //load your script here
    }
});

您可以扮演类似的角色

<html>
    <head></head>
    <body>
        <script type="text/javascript">
            var script = document.createElement('script');
            script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js";
            script.onload = function() {
                console.log($); // now it's loaded
            };
            document.body.appendChild(script);
            console.log($); // doesn't work
        </script>
    </body>
</html>

我只是以jquery为例,但它应该适用于任何情况。