Feb. 6th, 2010

alexey_rom: (Default)
У меня возникла ситуация, совершенно невозможная, по моему пониманию. Описал её на форуме Mozilla Add-ons, но спрошу ещё и тут.

Есть два скрипта. Один -- главный, а другой для диалога опций.

Первый создаёт глобальный объект с именем "nextplease". Судя по всему, работает правильно. Ошибок в консоли не пояляется, "alert(typeOf(nextplease))" в Execute JS выдаёт "object". Все кнопки и клавиши работают как надо и т.д.

Беда в том, что второй скрипт его в упор не видит. Сейчас там стоит:
// $Id: nextpleaseOptions.js,v 1.16 2007/07/21 00:15:11 howie Exp $

alert(typeof(nextplease));

if (nextplease === undefined) {alert("nextplease is undefined!");}
if (nextplease && nextplease.DEBUG) {alert("nextplease is defined");}

Насколько я понимаю, nextplease === undefined -- правильный способ проверки на undefined; по крайней мере, в книге Крокфорда сказано именно так.

Так вот, при открытии диалога я вижу alert с "undefined". А "nextplease is undefined!" не вижу; вместо него в консоли появляются ошибки:

Error: nextplease is not defined
Source file: chrome://nextplease/content/nextpleaseOptions.js
Line: 5

Error: nextplease is not defined
Source file: chrome://nextplease/content/nextpleaseOptions.xul
Line: 1

Наконец, если я выполняю typeof(nextplease) и nextplease === undefined в консоли, а не в Execute JS, то я получаю undefined и Error: nextplease is not defined соответственно.

Есть ли у кого-нибудь объяснение этим фактам и/или идеи, что с этим можно сделать?

Profile

alexey_rom: (Default)
alexey_rom

April 2012

S M T W T F S
1 234567
89 1011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 1st, 2025 06:59 pm
Powered by Dreamwidth Studios