首页  >  问答  >  正文

javascript - 如何让网站打开前先加载一个js文件呢?

而且网站加载完成正常打开后网页代码里面不显示那段加载js的代码。这种能做到吗???求解

曾经蜡笔没有小新曾经蜡笔没有小新2698 天前645

全部回复(4)我来回复

  • 大家讲道理

    大家讲道理2017-05-31 10:36:00

    不知道题主怎么定义 网站打开前呢?

    如果只是说让网页早点加载js文件的话 ,可以把script引用放到head标签去。
    不过题意又要求打开后网页代码不显示那段js,我是这么理解的,既然这样,其实主要分两步:

    1. 在head标签写一段内联js代码,代码的主要作用是负责引入js文件以及后续动作

    2. 所谓后续动作,就是引入文件后触发加载事件把这个文件的引入从文档dom里移除

    我简单列一个demo:

    首先准备页面 t.html

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>waterfall</title>
        <script type="text/javascript">
            (function(){
                // 动态加载script
                var script = document.createElement('script');
                var head = document.getElementsByTagName('head')[0];
                // console.log(head);
                // 脚本加载完就移除
                script.onload = function(){
                    console.log('loaded script ready to remove');
                    head.removeChild(script);
                };
                script.src = './t.js';
                console.log('load script');
                // 将script放到head里
                head.appendChild(script);
            })();
        </script>
    </head>
    <body>
        <p id="wrap" class="wrap"></p>
    </body>
    </html>

    被引入的js: t.js

    (function(){
        console.log('hello i am t');
    })()

    不知道这是不是题主要的效果?

    回复
    0
  • ringa_lee

    ringa_lee2017-05-31 10:36:00

    如果是为了提高加载速度,可以利用缓存,提前加载js,没遇到过

    回复
    0
  • 世界只因有你

    世界只因有你2017-05-31 10:36:00

    用web服务器(比如nginx)往页面里面插内容?
    然后这段js也在监听页面是否被加载完,加载完就删除自己。

    回复
    0
  • PHP中文网

    PHP中文网2017-05-31 10:36:00

    iframe里放实际的网页,iframe外放js试试?

    回复
    0
  • 取消回复