天天看點

JS加載相對路徑腳本的方法 - 彙總

  js加載腳本的方式有很多,但是各有各的用途。

  最近公司https項目改造,對于資源檔案這一塊,也是遇到一些問題,現在就來總結一下,怎樣改造https的腳本吧~!

方法1、借助服務端語言如PHP,輸入目前是https或者http的辨別到html頁面,再次編譯後得到輸出結果。【有服務端語言參與時推薦】

<script type="text/javascript" src="{$__SYS_URL__.__httpsUrl__}/dataster2/js/jquery.min.js"></script>      

方法2、使用html标簽base 替換該變量,其他地方的變量則用相對路徑即可,如 /img/a.png ...    【有功能局限】

<base id="based" href="http://res.cccc.com/">
<script type="text/javascript">
        var host = window.location.host;
        if(host.indexOf("eccc") > 0){
            $("#based").attr("href","http://res.ccc.com/");
        }else if(host.indexOf("xxxx") > 0){
            $("#based").attr("href","https://res.cccc.com/");
        }
</script>      

方法3、使用html自帶的特性,自動擷取目前協定填充 【友善易用、推薦】

<script type="text/javascript" src="http://cdn.ccc.com/static/common/lib/a.js"></script>
<!-- 改為 -->
<script type="text/javascript" src="//cdn.ccc.com/static/common/lib/a.js"></script>      

方法4、使用js腳本加載script檔案,添加到dom中   【在有些需求場景,低侵入式操作推薦】

<script type="text/javascript">
        //在每個需要的地方加該代碼,好煩呐
        var hm = document.createElement("script");
        hm.src = "//hm.baidu.com/hm.js?96664522";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
</script>      

方法5、将原始腳本拷貝到本項目中,使用相對路徑加載 【最笨的方法,不推薦】

<script>
        var cc = 1; 
        //...
        //...
</script>      

注意:

  1. 使用https協定加載網頁時,一些低版本的app可能不支援,需要避免該情況。

  2. 當https協定的網頁中,包含了http的資源檔案時,該網頁将會被認為是有不完全的連接配接,是以一改造https,應将所有http連結改為https。

  3. https證書盡量使用國際證書,如果有多個二級域名時,應買通配證書而非某特定域名證書。

暫且總結如此。

不要害怕今日的苦,你要相信明天,更苦!