2013-12-15 17 views
3

我只是想知道是否可以更改/切換網頁中的2個JavaScript文件? 如果用戶從我的網站選擇EN語言,那麼文件alljavaforEN.js將被激活。 但 如果用戶從我的網站選擇FR語言,那麼文件alljavaforFR.js將被激活如何切換2個JavaScript文件

如果我的問題太簡單,我很抱歉。但我一直在谷歌搜索我還沒有找到任何tutrials。可能我使用錯誤的關鍵字?

但是我在這裏所做的

<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

這是一種醜陋...但。

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"); 
} 

(你可以在一個函數把它包)

+0

我現在試試這個。但在此之前,這個腳本是否適用於每個瀏覽器? – user3104858

+0

@ user3104858是的,它的確如此。請注意'changeLanguage'不會像你期望的那樣工作,因爲一旦腳本被加載,它就會被加載_for good_雖然。頂部的代碼僅用於在頁面加載之前執行_once_。你可能想看看模板化,以及國際化通常如何完成,而不是通過反覆包括腳本:) –

+0

無論如何,這是一個好的開始!謝謝我會在幾分鐘內給你信用。由於我的帳戶剛剛創建。 – 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> 
+0

嘿好的腳本! – user3104858