我的Javascript出现问题,即使我的研究工作也无法找到修复方法。
我正在尝试调用一个使用Ajax读取xml文件的函数,但我无法按照我想要的方式加载文件。 如果我从我的HTML页面调用我的函数LoadXML(),该函数工作正常。 (我得到了我的XML文件的内容) 如果我从我的JS函数langue()调用我的函数LoadXML(),它就不起作用。 (XML文件未加载)
当有人在下拉菜单中选择一个选项时,我在HTML页面中调用langue()。
函数LoadXML():
$.ajax({
type: "GET",
url: "resource-fr-fr.xml",
dataType: "xml",
success: function (xml) {
alert("ok")
}
})
功能语言():
localStorage['langue'] = document.getElementById('languages').value
localStorage.removeItem('filexml')
LoadXML(); //this doesn't work i can't see the alert('ok')
var test = localStorage['filexml'];
console.log(test);
location.reload(false);
我如何在HTML中调用langue():
<select id="languages" onchange="langue()">
<option value="en-us">English</option>
<option value="es-mx">Mexicano</option>
<option value="fr-fr">Français</option>
</select>
我如何在HTML中测试LoadXML():
window.onload = LoadXML(); //This works i see the alert('ok')
我做错了吗?如果是这样的话,我该如何解决?你知道更好的方法吗?
答案 0 :(得分:0)
好几次尝试后,我修好了。 我将函数Langue()放在我的LoadXML()
中 $.ajax({
type: "GET",
url: "resource-"+document.getElementById('languages').value+".xml",
dataType: "xml",
success: function (xml) {
//Delete the old language
localStorage.removeItem('filexml')
//Load the new XML language file inside localStorage as a string
$(xml).find('data').each(
function () {
console.log("I'm inside")
localStorage.setItem('filexml', localStorage["filexml"] + "#" + $(this).attr('name') + "$" + $(this).find('value').text()); //Nom de la branche (Data name) + Valeur de la branche (Value)
i++;
});
//Change the language
langue();
}
})