Вот функция:
function dnins (event) { alert('In'); // alert(event. target.nodeName); alert(event. originalTarget.nodeName); var t = event. originalTarget; // if ((t. nodeName == "vbox") || (t. nodeName == "xul:vbox")) if ((t. nodeName == "tab") || (t. nodeName == "xul:vbox")) { alert('Add'); // äîáàâëåíà íîâàÿ âêëàäêà // ïðèêðåïëÿåì ýëåìåíòó browser âêëàäêè // îáðàáîò÷èê DOMContentLoaded // var b = t. getElementsByTagName ("browser") [0]; // t. addEventListener ("DOMContentLoaded", OnDocument, true); } }
на втором ивенте (в точке alert(event. originalTarget.nodeName) выдается ошибка
Может как-нить с броузером связано у меня FF 1.5.0.2
Отсутствует
на втором ивенте (в точке alert(event. originalTarget.nodeName)wink выдается ошибка
Ерунда, т. к.
this.getBrowserAtIndex(i) has no properties
Источник: chrome://global/content/bindings/tabbrowser.xml
Строка: 201
Так что не в dnins функции ошибка.
Может как-нить с броузером связано у меня FF 1.5.0.2
Может, с браузером. У меня тоже 1.5.0.2. Ещё раз:
this.getBrowserAtIndex(i) has no properties
Источник: chrome://global/content/bindings/tabbrowser.xml
Строка: 201
А что там, в chrome://global/content/bindings/tabbrowser.xml на 201 строке ?
<method name="getBrowserIndexForDocument"> <parameter name="aDocument"/> <body> <![CDATA[ for (var i = 0; i < this.mPanelContainer.childNodes.length; i++) { if (this.getBrowserAtIndex(i).contentDocument == aDocument) { return i; } } return -1; ]]> </body> </method>
Так что у вас с индексами табов ? Менеджер вкладок хулиганит ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
<method name="getBrowserIndexForDocument"> <parameter name="aDocument"/> <body> <![CDATA[ for (var i = 0; i < this.mPanelContainer.childNodes.length; i++) { if (this.getBrowserAtIndex(i).contentDocument == aDocument) { return i; } } return -1; ]]> </body> </method>
может ещё за экстеншинов.
у меня стоят:
Dom Inspector
TalkBack
ShowIP
Hello Word
и мой
Отсутствует
Может, поможет event. currentTarget. mTab. tabIndex в OnDocument. Тогда, для различения основного документа и фреймов надо будет делать что-то вроде
if (event. originalTarget. location. href == event. currentTarget. contentDocument. location. href) { // основной документ } else { // фрейм }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
а из-за тулбара такой глюк может быть ?...
Понятия не имею.
Я говорил, что у меня ругается на mTab
Что даёт alert (event. currentTarget. nodeName) ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
для такого варианта
document.addEventListener("DOMContentLoaded", Docc1, true); function Docc1(event) { alert(event. currentTarget.nodeName); // == #document }
Отсутствует
для такого
window. getBrowser (). addEventListener ("DOMNodeInserted", dnins, true); document.addEventListener("DOMNodeRemoved", OnTabRemoved, true); function dnins (event) { alert(event. currentTarget.nodeName); }
1-й : tabbrowser
2-й : Ошибка: this.getBrowserAtIndex(i) has no properties
Источник: chrome://global/content/bindings/tabbrowser.xml
Строка: 201
Отсутствует
А надо, чтобы alert (event. currentTarget. nodeName) выдавал "browser". Тогда будет mTab работать, может, и getBrowserIndexForDocument заработает.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
еслиб alert (event. currentTarget. nodeName) выдавал "browser" ==>
var c = document.getElementById ("content"); for (var i=0;i<c.browsers.length;i++) { if (c.browsers[i] == event. currentTarget. nodeName) { // где i номер таба } }
Отсутствует
В том что event. currentTarget это документ (Frame не имеет родителей).
и к какому c.browsers[i] он относится.
Ну вот вам мой тестовый код:
function OnDocument (event) { alert ("currentTarget: " + event. currentTarget. nodeName); // всегда browser alert ("target: " + event. target); } function dnins (event) { var t = event. originalTarget; if ((t. nodeName == "vbox") || (t. nodeName == "xul:vbox")) { var b = t. getElementsByTagName ("browser") [0]; b. addEventListener ("DOMContentLoaded", OnDocument, true); } } var tb = window. getBrowser (); tb. addEventListener ("DOMNodeInserted", dnins, true);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Работает ечли убрать остальные обработчики.
Если в OnDocument добавить alert ("tab index: " + event. currentTarget. mTab. tabIndex);
то Ошибка: event.currentTarget.mTab has no properties
Источник: chrome://get_html_info/content/get_html_info.js
Строка: 64
Отсутствует
ну и бог с этим mTab'ом. Если event. currentTarget. nodeName == "browser", индекс можно найти перебором или по ссылке на браузер (array. indexOf), табы и фреймы различать по location. href target'ов.
Отредактировано Anton (26-04-2006 16:37:29)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует