还执行功能英语

时间:2014-01-14 08:24:38

标签: javascript jquery function

我在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">';
        }
    }
}

2 个答案:

答案 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();