2009-09-30 5 views
0

Я использую глобальную переменную в JavaScript, объявленную в теге сценария вне любой функции:JavaScript глобальные переменные видимости

<script type="text/javascript"> 
     var prov_status_dict={}; 
     .... 
</script> 

Позже в яваскрипта метод я использую переменную нормально.

temp=prov_status_dict[current_as_id]; 

У меня возникли проблемы с ним в опере и т. Д., Пока на firefox он работает. Вот что сообщает консольная консольная консоль:

JavaScript - http://localhost:8000/input/ 
Event thread: click 
Error: 
name: ReferenceError 
message: Statement on line 62: Undefined variable: prov_status_dict 
stacktrace: n/a; see opera:config#UserPrefs|Exceptions Have Stacktrace 

Я заметил, что проблема связана с глобальными переменными в целом. Я попытался переместить некоторые в скрытые поля, но та же ошибка появляется при следующем использовании глобального var.

Помогите?

+0

код, так как вы описали, он должен работать, и на самом деле работает на Опере, когда я бегу простой тест с использованием того же имени переменной и расщеплении декларацию и использовать через два разные блоки скриптов, поэтому должно быть что-то большее, чем вы показываете. – NickFitz

ответ

5

Я обычно доступ к моим глобал через объект окна, так что у меня всегда есть точка отсчета

window.MyVariables = {}; 
window.MyVariables.prov_status_dict = {}; 

Дайте этому попытку, это может решить вашу проблему.

0

Старайтесь избегать использования глобальных переменных см http://yuiblog.com/blog/2006/06/01/global-domination

Смежные вопросы