Кто-нибудь еще видел странные проблемы с JavaScript в Firefox 9?У нас есть две проблемы.
В первом случае оператор instanceof возвращает false, когда он должен возвращать true.Когда я проверяю с помощью Firebug, переменная определенно соответствует ожидаемой, но возвращает false.Однако, если я добавлю дополнительные точки останова в своем коде, он вернет true.Я ничего не могу сделать иначе, кроме добавления дополнительных точек останова, и он начнет работать.
В другом случае мы создали переменную, ограниченную областью действия внутри функции, к которой затем осуществляется глобальный доступ.Примерно так (обратите внимание, что мы используем YUI 2 для создания глобального пространства имен):
YAHOO.namespace("MyNS");
(function() {
var _panel;
YAHOO.MyNS.showPanel = function() {
if (!_panel) {
// code to create _panel
_panel = new YAHOO.widget.Panel(...);
}
_panel.show();
};
YAHOO.MyNS.hidePanel = function() {
if (_panel && _panel !== null && _panel.cfg.getProperty("visible")) {
_panel.hide();
}
};
})();
На моей отдельной странице YAHOO.MyNS.showPanel () работает нормально, но потом, когда я позже позвоню YAHOO.MyNS.hidePanel (), происходит сбой, потому что _panel не определена.Если я помещу точку останова в firebug как в методах showPanel (), так и в hidePanel (), то _panel не будет неопределенным.
Мы в тупике.Поскольку это новая функция, я попытался отключить функцию вывода типов в Firefox, чтобы увидеть, если это что-то изменило, а это не так.