Firefox コンソールがネットワーク情報ダイアログをポップアップする方法を改善したいと考えています。オーバーレイを試しました:
overlay chrome://browser/content/NetworkPanel.xhtml chrome://devtooltweaks/content/netWinOverlay.xul
しかし、うまくいかないようです。ソースを調べたところ、ファイルには要素を表示するコードがないように見えます。別のフォームがそれを呼び出しているに違いありません。Firefox 拡張機能から、このポップアップ ウィンドウに機能を追加する簡単な方法があるかどうか疑問に思っています。
- アップデート -
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);
残念ながら、アドオン コードからこのようなリスナーを作成する簡単な方法はないようです。store-original-function-and-replace トリックを実行しようとしましたが、実行されましたが、何らかの形で正しいコンテキストで元の関数を呼び出していないようです:
<?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