根据URL执行不同的UI脚本

时间:2015-12-30 04:28:54

标签: javascript jquery

我的UI分为2个javascript文件。如果URL是某些模式,请说/ test1然后我想要执行script1,或者换句话说,我希望将script1添加为<include>,以便UI根据script1呈现,否则我希望将script2添加到/ TEST2。

没有触发这些网址的按钮。当页面加载时 - 检测URL并相应地加载脚本。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

您可以动态插入javascript文件。

<script type="application/javascript">
    function loadJS(file) {
        // DOM: Create the script element
        var jsElm = document.createElement("script");
        // set the type attribute
        jsElm.type = "application/javascript";
        // make the script element load file
        jsElm.src = file;
        // finally insert the element to the body element in order to load the script
        document.body.appendChild(jsElm);
    }
    if(type === "test1")
        loadJS('file1.js')
    else
        loadJS('file2.js'); 
</script>

答案 1 :(得分:0)

使用jquery和javascript:

$(document).ready(function(){

    var url=location.href//get the page url
    var scriptUrl
    if(url.indexOf('something')>0){//check for specific string in url
    scriptUrl='/script1.js'
    }
    else{
    scriptUrl='/script2.js'
    }

    var script = document.createElement( 'script' );//create script element
    script.type = 'text/javascript';
    script.src = scriptUrl;
    $("head").append( script );//append newly created script element to head

    })

答案 2 :(得分:0)

查询字符串示例:

  • ?页= <强> TEST1
  • ?页= <强> TEST2

以下代码将检查页面的值,然后加载相应的脚本:

$(document).ready(function () {

  var page = $.getUrlVar("page");

  var scriptToRun = null;

  switch (page) {

    case "test1":

      scriptToRun = "script1.js";

      break;

    case "test2":

      scriptToRun = "script2.js";

      break;

  }

  // Create Script Tag

  var script = document.createElement('script');

  script.type = 'text/javascript';

  script.src = scriptToRun;

  $("head").append(script);

});

请务必在 $(文档).ready 代码之前添加以下扩展程序

$.extend({

  getUrlVars: function(){

    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++) {

      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];

    }

    return vars;

  },

  getUrlVar: function(name){

    return $.getUrlVars()[name];

  }

});

(这个jQuery扩展不是我的代码)。

相关问题