Трудность сохранить значение переменной в JavaScript - PullRequest
0 голосов
/ 21 апреля 2011

я написал две отдельные функции в javascript, и я создал глобальную переменную.первая функция устанавливает значение глобальной переменной, а вторая функция использует эту глобальную переменную для проверки условия, но она не работает.

вот мой код.

var flag = 1;

function setSelection(){

    for (index=0; index < top.parent.frmRadio.view.length; index++) {
        if (top.parent.frmRadio.view[index].checked) {
            var radioValue = top.parent.frmRadio.view[index].value;

            if(radioValue == "graph"){
                flag = 1;
                top.parent.test2.innerHTML = flag;
            }
            else{
                flag = 0;
                top.parent.test2.innerHTML = flag;

            }

        }
    }
}


function setFileName(name){
    var fileName = name;
//  document.getElementById("body").innerHTML = fileName;
    document.getElementById("body").innerHTML = flag;
    if(flag == 1){
        top.parent.frame2.location = fileName;
        document.getElementById("body").innerHTML = fileName;
    }
    else{
        top.parent.frame2.location = "simpletree.html";
        document.getElementById("body").innerHTML = "simpletree.html";
    }


//  parent.frame2.location = fileName;
} 

обафункция вызывается в другом месте.первый метод вызывается при нажатии переключателя, а второй - при нажатии списка.

1 Ответ

0 голосов
/ 21 апреля 2011

Ваша глобальная переменная в порядке (если глобальные переменные в порядке; настоятельно рекомендуем избегать их).

Думаю, проблема в функции setFileName, у вас там очень странные операции. Некоторые комментарии:

function setFileName(name){
    var fileName = name;
//  document.getElementById("body").innerHTML = fileName;
    document.getElementById("body").innerHTML = flag;
//  ^-- Do you *really* have an element on the page with the id="body"?
//      This will not change the `body` element of the page (unless you've given it that id).
    if(flag == 1){
        top.parent.frame2.location = fileName;
        document.getElementById("body").innerHTML = fileName;
//      ^--- This will replace the content of the element with id="body" with
//           the text of the filename (it will not retrieve the file)
    }
    else{
        top.parent.frame2.location = "simpletree.html";
        document.getElementById("body").innerHTML = "simpletree.html";
//      ^--- This will replace the contents of the element with id="body"
//           with the text "simpletree.html", it will not retrieve the file
    }


//  parent.frame2.location = fileName;
} 

Установка innerHTML элемента изменяет его содержимое на фактический текст, который вы назначаете. Он не загружает страницу и не помещает туда содержимое страницы. Для этого вам нужно будет использовать iframe или ajax для загрузки содержимого страницы (с сервера того же источника), а затем назначить полученный текст / разметку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...