2

Chrome 拡張機能を使用して既存のコンソール コマンドを上書きしようとしています。その理由は、特定のサイトのコンソール ログを記録したいからです。

残念ながら、私はDOMを更新できないようです.これは私がこれまで試したことです:

// Run functions on page change
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
    var s = document.createElement('script');
    // TODO: add "script.js" to web_accessible_resources in manifest.json
    s.src = chrome.runtime.getURL('core/js/app/console.js');
    s.onload = function() {
        this.remove();
    };
    (document.head || document.documentElement).appendChild(s);
});

console.js

// Replace functionality of console log
console.defaultLog = console.log.bind(console);
console.logs = [];
console.log = function(){
    console.defaultLog.apply(console, arguments);
    console.logs.push(Array.from(arguments));
};

// Replace functionality of console error
console.defaultError = console.error.bind(console);
console.errors = [];
console.error = function(){
    console.defaultError.apply(console, arguments);
    console.errors.push(Array.from(arguments));
};

// Replace functionality of console warn
console.defaultWarn = console.warn.bind(console);
console.warns = [];
console.warn = function(){
    console.defaultWarn.apply(console, arguments);
    console.warns.push(Array.from(arguments));
};

// Replace functionality of console debug
console.defaultDebug = console.debug.bind(console);
console.debugs = [];
console.debug = function(){
    console.defaultDebug.apply(console, arguments);
    console.debugs.push(Array.from(arguments));
};

スクリプトは alert() で正常に実行されます。

私の目標は console.logs にアクセスすることですが、未定義です。つまり、スクリプトを挿入したにもかかわらず、DOM にアクセスできませんでした。

不可能な場合は、サード パーティの統合、つまり Java または C?

どんな考えでも大歓迎です:)

4

2 に答える 2