简体   繁体   English

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

[英]How to replace the source of a script tag when a select changes value

I am new to javascript and I need some help. 我是javascript新手,需要一些帮助。

I have two javascript files that run when the page is loaded: 页面加载时,我有两个运行的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>

I have a select drop down: 我有一个选择下拉列表:

            <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 / العربية" />
                ..........

How do I change the javascript source of my two javascript files from the select drop down list that will then call the different js files? 如何从选择下拉列表中更改两个javascript文件的javascript源,然后将它们调用不同的js文件?

Give an id to the dropdown, for Instance 'lang', after create a function that will read the value of the dropdown when it changes, then concatenate the value to generate the source of the file, finally find and replace the source of your old scripts. 创建实例后,为实例“ lang”提供一个ID给下拉列表,该函数将在下拉列表更改时读取下拉列表的值,然后将其串联以生成文件的源,最后查找并替换旧的源脚本。 (I suppose your script tag is in the head). (我想您的脚本标签在头)。

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: 在HTML上:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM