Что случилось с document.domConfig в Firefox? - PullRequest
0 голосов
/ 07 февраля 2010

Я перебирал свойства document, когда столкнулся с интересным явлением в Firefox, document утверждает, что поддерживает свойство domConfig, хотя MDC говорит, что оно не реализовано , но когда япопытаться получить свойство. Получено исключение:

Ошибка: необработанное исключение: [Exception ... "Компонент вернул код ошибки: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOM3Document.domConfig]" nsresult: "0x80004001NS_ERROR_NOT_IMPLEMENTED) "location:" JS frame :: javascript: alert (typeof (document.domConfig)) :: :: line 1 "data: no]

Ниже показано поведение, как Chrome, так иIE согласен (я не проверял Opera) в том, что domConfig не является свойством окна, но Firefox утверждает, что это так, но не может его извлечь (скопируйте вставку в поле URL, так как я не могу получить уценку, чтобы датьссылка).

/* true in FF, false in other browsers */ 
javascript:alert("domConfig" in document)
/* exception in FF, 'undefined' in other browsers */
javascript:alert(typeof(document.domConfig)) 

Что здесь происходит?

1 Ответ

1 голос
/ 08 февраля 2010

Право Pointy, domConfig предоставляется в интерфейсе (DOM Level 3 Core Document - в исходном коде Mozilla это называется nsIDOM3Document ), но не реализовано (см. nsDocument::GetDomConfig()). typeof сначала получает значение, затем определяет его тип (а не из определения интерфейса), поэтому неудивительно, что typeof document.domConfig выдает исключение.

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

Я предполагаю, что для спецификаций, предназначенных для реализации в Mozilla, имеет смысл завершить («заморозить» в терминах Mozilla) интерфейсы, чтобы их можно было использовать из двоичного кода без дальнейших изменений после получения новых свойств / методов интерфейса. реализованы. И это, казалось, не имело большого значения так или иначе.

Если вам интересно услышать мнение разработчиков, вы можете обратиться по адресу mozilla.dev.tech.dom или mozilla.dev.platform.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...