使用onclick事件动态更改javascript源

时间:2015-06-25 10:36:45

标签: javascript onclick var

我是JavaScript的初学者并且遇到以下问题, 我有两种语言的多页。后来可能更多。我使用javascript var来设置语言。之一:

<script src="javascript"+language+".js" type="text/javascript"></script>

然后我用它来加载正确的语言文件:

select * from ForgeRock where orid =
(select max(orid) from ForgeRock where seq ='A12') ;

有没有办法通过onclick()事件更改此变量。这样它会改变并保持变化,直到我再次改变它为止?

谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

您可以像这样动态添加脚本:

&#13;
&#13;
var selectorEls = document.querySelectorAll(".language-select");
var current;

function _handleClick ( ev ) {
  
  if ( current ) current.parentNode.removeChild(current)

  var language = ev.target.getAttribute("data-language");
  var newScript = document.createElement("script");
  var newSrc = "javascript" + language + ".js";
  newScript.setAttribute("src",newSrc);
  current = newScript;
  document.head.appendChild(newScript);
}

for ( var i = 0; i < selectorEls.length; i += 1 ) {
  
  selectorEls[i].addEventListener("click", _handleClick);
}
&#13;
<a class="language-select" data-language="en">EN</a>
<a class="language-select" data-language="fr">FR</a>
<a class="language-select" data-language="de">DE</a>
&#13;
&#13;
&#13;

此代码绑定了许多<a>元素的点击次数,每个元素都有一个语言数据属性。单击其中一个会创建一个具有正确语言的新<script>并将其添加到页面中。它还会删除您之前以这种方式添加的任何脚本,以确保没有冲突。