我的UI分为2个javascript文件。如果URL是某些模式,请说/ test1然后我想要执行script1,或者换句话说,我希望将script1添加为<include>
,以便UI根据script1呈现,否则我希望将script2添加到/ TEST2。
没有触发这些网址的按钮。当页面加载时 - 检测URL并相应地加载脚本。
我怎样才能做到这一点?
答案 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)
查询字符串示例:
以下代码将检查页面的值,然后加载相应的脚本:
$(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扩展不是我的代码)。