Я хочу попытаться улучшить способ, которым консоль Firefox открывает диалоговые окна информации о сети. Я попробовал наложение:Как подключиться к всплывающей подсказке сети Firefox?
overlay chrome://browser/content/NetworkPanel.xhtml chrome://devtooltweaks/content/netWinOverlay.xul
но он не работает. Я посмотрел в источнике, и the file выглядит так: нет кода для отображения элементов, другая форма должна его называть. Мне интересно, есть ли простой способ добавить функции в это всплывающее окно из расширения Firefox?
--Update--
Я нашел соответствующий код в NetworkPanel.jsm:
// Set the document object and update the content once the panel is loaded.
this.iframe.addEventListener("load", function onLoad() {
if (!self.iframe) {
return;
}
self.iframe.removeEventListener("load", onLoad, true);
self.update();
}, true);
К сожалению, это не похоже, есть ли простой способ для создания слушателя, как это из аддон код. Я пытался сделать магазин оригинал-функция и заменить трюк, он работает, но это, кажется, не называть исходную функцию в правильном контексте как-то:
<?xml version="1.0" encoding="utf-8"?>
<overlay id="helloworldOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script>
var origOpenNetPanel = WebConsoleFrame.prototype.openNetworkPanel;
WebConsoleFrame.prototype.openNetworkPanel = function WCF_openNetworkPanel(aNode, aHttpActivity) {
//Run the original, in its natural ('this') environment:
var netPanel = origOpenNetPanel.call(this, aNode, aHttpActivity);
//todo: add modification.
return netPanel;
}
</script>
</overlay>
^я первоначально пытался .call(WebConsoleFrame
и .call(WebConsoleFrame.prototype
. Обычно это должно работать, это может быть какое-то особое обстоятельство в коде хром?
Этот код выше работает с этой накладкой:
overlay chrome://browser/content/devtools/webconsole.xul chrome://devtooltweaks/content/netWinOverlay.xul
Вы не можете накладывать HTML-документы, этот механизм работает только для XUL. –
@WladimirPalant Это имеет смысл. Интересно, есть ли хороший способ подключиться к функции открытия окна, называемой здесь. – NoBugs