0

createMessageNode の戻り値を取得して変更し、Web コンソールの出力を変更して、Firefox Web コンソールに情報を挿入する方法を見つけました。

devtools の変更のデバッグ

奇妙なことに、返された要素は、それらが表すオブジェクトにリンクする方法がないように見えますが、[object Array] をクリックすると、常に右にポップアップします。これはどのように接続されていますか?

補足として、パンくずリストを上方向にクリックしてスタック トレースのどこから来たかを確認すると、一部の項目がデバッガーに表示されません。これはバグですか、それとも一部の JS モジュールがコンパイルされて、コンテンツがここに表示されないようになっていますか? [object Array] などと常に言うのではなく、コンソール ラインに配列を追加するのは正しい場所ですか?

更新このコードは、上記のブランチで確認して実行できます: https://github.com/programmin1/DevTools-Tweaks/tree/webconsoleOutputBetter

4

1 に答える 1

1

情報の注入とは、Services.console.logStringMessage などのことですか?

https://developer.mozilla.org/en-US/docs/Console_service

Web コンソールのクロムにアクセスする場合は、次のようにします。

var devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
var HUDService = devtools.require("devtools/webconsole/hudservice");

var hud = HUDService.getBrowserConsole();

var btnClear = hud.chromeWindow.document.querySelector('.webconsole-clear-console-button');
btnClear.addEventListener('mouseover', function() {
  hud.jsterm.clearOutput(true);
}, false);
var fieldFilter = hud.chromeWindow.document.querySelector('.hud-filter-box');
fieldFilter.value = 'rawr'

このコードはクロム ウィンドウにアクセスします。そこにダンプされたすべてのテキストにアクセスできます。上記のこの例では、フィルター値を変更し、クリア ボタンでマウスの Web コンソールをクリアします。これは、Web コンソールにアクセスする方法の例にすぎません。

于 2014-02-11T17:53:49.913 に答える