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?
どんな考えでも大歓迎です:)