2013-06-12 4 views
0

Я хочу создать глобально доступную переменную. Он должен измениться, когда мы хотим измениться. После изменения он должен дать измененное значение.Как создать общедоступную статическую переменную javascript?

var language ="english"; 

function getGlobalVar(varName) { 
    if(varName == "language"){ 
     return language; 
    } 
} 

function setGlobalVar(varName, value) { 
    if(varName == "language"){ 
     language = value; 
    } 
} 

Когда мы используем getGlobalVar («язык») на других страницах, он должен давать измененное значение.

ответ

4

глобальная переменная просто переменная прикреплена к window:

window.language = 'english'; 

function getGlobalVar(bar) { 
    return window[bar]; 
} 

Рекомендуется, чтобы создавать свои собственные пространства имен, чтобы избежать проблем в дальнейшем:

window.MY = {}; 
MY.language = 'english'; 
+0

Спасибо, я попробую это. –

+0

Я думаю, что этот ответ работает на мою проблему с глобальными переменными. Но используя это, мы не можем создать статическую переменную на страницах. Теперь я думаю, что создать статическую переменную на страницах в JavaScript невозможно. –

+1

Вы можете использовать историю api и передать их в URL-адрес или использовать localStorage. – elclanrs

2

Когда мы используем getGlobalVar («язык») на других страницах, он должен указать измененное значение

В сети используется протокол stateless, то есть информация не сохраняется со страницы на страницу. Чтобы обойти это, вы можете использовать куки-файлы на стороне клиента или на стороне сервера, например, сеансы.

Попробуйте это:

1.htm

<script type="text/javascript"> 
    window.val = "hello world"; 
    alert(window.val); 
    window.location.href = "2.htm" 
</script> 

2.htm

<script type="text/javascript"> 
    alert(window.val); 
    </script> 

печенья пример:

1.htm

<script type="text/javascript"> 
    var in_one_year = new Date(); 
    in_one_year.setFullYear(in_one_year.getFullYear() + 1); 
    document.cookie = "language=English" + 
         ";expires=" + in_one_year.toGMTString(); 


    all_cookies = document.cookie 
    alert(all_cookies); 
    window.location.href = "2.htm" 
</script> 

2.htm

<script type="text/javascript"> 
    alert(document.cookie); 
</script> 
+0

Это означает, что каждый раз, когда мы ссылаемся на файл javascript, он дает новый экземпляр? –

+2

Это не имеет никакого отношения к файлу js. Если вы используете js для присоединения значения к объекту window страницы _web_, то при загрузке новой страницы информация не сохраняется, т. Е. Объект окна новой страницы не будет иметь никаких привязанных к ней значений. – 7stud

+0

Мы не можем создать статическую переменную, которая сохраняется на страницах в файле JavaScript без привязки переменной к объекту окна? –