我在Javascript中有这个代码。但现在我有一个问题。此代码检查页面是英语还是荷兰语。但是当页面是英文的时候。还执行荷兰语功能。我该如何解决这个问题?
var theLanguage = $('html').attr('lang');
// Diferent language
if (theLanguage === "en") {
function doCheckForm() {
el = document.getElementById('hoteliers');
if (el) {
el.innerHTML = '<iframe name="' + document.hcomForm.hTarget.value + '" src="" width="100%" height="600" frameborder="0">';
}
}
}
if (theLanguage === "nl") {
function doCheckForm() {
el = document.getElementById('hoteliers');
if (el) {
el.innerHTML = '<iframe name="' + document.hcomForm.hTarget.value + '" src="" width="100%" height="600" frameborder="0">';
}
}
}
答案 0 :(得分:3)
正如所指出的,doCheckForm()
在两个if
语句中看起来都是一样的。无论如何,我建议您删除该功能并执行此操作:
var theLanguage = $('html').attr('lang');
function doCheckForm() {
el = document.getElementById('hoteliers');
if (el) {
el.innerHTML = '<iframe name="' + document.hcomForm.hTarget.value + '" src="" width="100%" height="600" frameborder="0">';
}
}
// Diferent language
if (theLanguage === "en") {
doCheckForm();
} else if (theLanguage === "nl") {
doCheckForm()
}
答案 1 :(得分:2)
您的问题是双doCheckForm
声明。然后,您的脚本上下文通过浏览器javascript引擎解析,立即执行init。在函数初始化变量之后,但值仅在该代码位置分配给变量,其中=
运算符。
试试这个:
var theLanguage = $('html').attr('lang');
function doCheckForm() {
var el;
if (theLanguage === "en") {
el = document.getElementById('hoteliers');
if (el) {
el.innerHTML = '<iframe name="' + document.hcomForm.hTarget.value + '" src="" width="100%" height="600" frameborder="0">';
}
} else if (theLanguage === "nl") {
/* Note: code was the same in your example*/
el = document.getElementById('hoteliers');
if (el) {
el.innerHTML = '<iframe name="' + document.hcomForm.hTarget.value + '" src="" width="100%" height="600" frameborder="0">';
}
}
}
doCheckForm();