如何在两个JavaScript文件之间切换

4
我想知道在网页中是否可以更改/切换2个JavaScript文件?如果用户从我的站点选择英语,则将激活alljavaforEN.js文件。但是,如果用户从我的站点选择法语,则将激活alljavaforFR.js文件。 很抱歉如果我的问题太简单了。但我已经在Google上搜索了,没有找到任何教程。可能我使用了错误的关键词吗? 无论如何,我在这里所做的就是
<html>
<head>

Function changeLanguage (lang) {
if (lang=="fr"){///Do something to activate this <script type="text/javascript" src="alljavaforFR.js"></script>}

if (lang=="en"){ //Do something to activate this <script type="text/javascript" src="alljavaforEN.js"></script>}

}
</head>
<body>
  <a href="#" onclick="changeLanguage('en');"> Change to English</a>
  <a href="#" onclick="changeLanguage('fr');"> Change to French</a>
</body>
</html>
2个回答

2

这有点丑陋...但是。

if (lang=="fr"){
    document.write('<script type="text/javascript" src="alljavaforFR.js"></script>')
}

if (lang=="en"){ 
    document.write('<script type="text/javascript" src="alljavaforEN.js"></script>')
}

另一种更好的方法(不是在页面加载时)可能是以延迟方式加载脚本,类似于以下内容。

function loadScript(src){
    var el = document.createElement("script");
    el.src = src;
    document.body.appendChild(el);
}

然后:
if (lang === "fr"){
    loadScript("alljavaforFR.js")
} else  if (lang === "en"){
    loadScript("alljavaforEN.js");
}

(您可以将其包装在函数中)

我现在会尝试这个。但是,在此之前,这个脚本能够在所有浏览器上运行吗? - user3104858
@user3104858 是的,的确如此。需要注意的是 changeLanguage 不会像你预期的那样起作用,因为一旦脚本被加载,它就被永久加载了。顶部的代码仅旨在执行一次,并在页面加载之前执行。您可能希望了解模板化和通常如何进行国际化,而不是一遍又一遍地包含脚本 :) - Benjamin Gruenbaum
无论如何,这是一个好的开始!!谢谢,我会在几分钟内给你信用。因为我的账户刚刚创建。 - user3104858

0

试试这个:

<script type="text/javascript" id="script" src="alljavaforFR.js"></script>

<script type="text/javascript">
function changeLanguage(lang) {
  var src;
  switch(lang) {
    case "en":
    src = "alljavaforEN.js";
    break;
    case "fr":
    default:
    src = "alljavaforFR.js";
  }
  document.getElementById("script").src = src;
}
</script>


<a href="#" onclick="changeLanguage('en');"> Change to English</a>
<a href="#" onclick="changeLanguage('fr');"> Change to French</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接