如何在选择更改值时替换脚本标记的源

时间:2013-04-17 06:20:30

标签: javascript html

我是javascript的新手,我需要一些帮助。

我有两个在加载页面时运行的javascript文件:

    <script id="gvkbjs01" src="GVKB03_files/en_a.js" type="text/javascript" ></script>
    <script id="gvkbjs02" src="GVKB03_files/en_b.js" type="text/javascript" ></script>

我有一个选择下拉列表:

            <select lang="en" onchange="loadGVKBJS(this.value)" >
                <option value="" label=" Select a language" selected="selected" />
                <option value="af" label="Afrikaans / Afrikaans" />
                <option value="sq" label="Albanian / shqipe" />
                <option value="am" label="Amharic / አማርኛ" />
                <option value="ar" label="Arabic / العربية" />
                ..........

如何从选择下拉列表中更改我的两个javascript文件的javascript源,然后调用不同的js文件?

1 个答案:

答案 0 :(得分:1)

在下拉列表中为实例'lang'提供一个id,在创建一个函数后,它将在更改时读取下拉列表的值,然后连接该值以生成文件的源,最后查找并替换源你的旧脚本。 (我想你的脚本标签在脑中)。

function generateSrc(){

 var lang = document.getElementById('lang').value;
 var src1 = 'GVKB03_files/'+lang+'_a.js';
 var src2 = 'GVKB03_files/'+lang+'_b.js';

 //Replace src from old scripts in head
 var headElms = document.getElementsByTagName("head")[0].children;
 var found = 0
 for(var i = 0; i < headElms.length; i++) {
    if(headElms[i].tagName == 'SCRIPT') {
           src_name = headElms[i].src;
           if(src_name.search("GVKB03_files") > 0 && found == 0){
             found++;
             headElms[i].src = src;
           }else if(src_name.search("GVKB03_files") > 0 && found == 1){
             headElms[i].src = src2; 
           }
     }
  }

}

on Html:

<select id="lang" lang="en" onchange="generateSrc()" >