Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Для почему бы не захвата одной из библиотек сценариев Ajax они абстрагируют далеко много перекрестного браузера DOM, пишущий сценарий черной магии, и делают жизнь адской партией легче.
Чтобы заставить FF подражать поведению IE при использовании клавиатуры, можно использовать keyup событие на избранном поле. В Вашем примере (я не поклонник присоединения обработчиков событий этот путь, но это - другая тема), это было бы похоже на это:
<select name="user" id="selUser" onchange="javascript:SetLocationOptions()" onkeyup="javascript:SetLocationOptions()">
Ну, IE имеет несколько нестандартную объектную модель; то, что Вы делаете, не должно работать, но Вы выходите сухим из воды, потому что IE хорош Вам. В Firefox и Safari, document.frm в Вашем коде оценивает к неопределенному.
необходимо использовать значения идентификаторов на элементах формы и использовании document.getElementById('whatever')
для возврата ссылки на них вместо того, чтобы обратиться к несуществующим свойствам объекта документа.
, Таким образом, это работает немного лучше и может сделать то, что Вы после:
Line 27: <form name="frm" id="f" ...
Line 6: var frmTemp = document.getElementById('f');
, Но Вы могли бы хотеть проверить эту превосходную книгу, если Вы хотите узнать больше о правильном способе идти о вещах: DOM Сценарии Jeremy Keith
Также, в то время как мы находимся на предмете, , Пуленепробиваемый Ajax тем же автором также заслуживает места на Вашей книжной полке, как JavaScript: Хорошие Части Doug Crockford