以下の FireFox ネイティブ関数のコードを使用して再定義できます (Chromedocument.func = newfunc
では、injectind コードを使用せずに、以下と同じことを行うか、または同じことを行うことができます)。小さな新しい関数の場合、注入は問題ありませんが、他の関数と通信する必要がある場合や、ユーザースクリプトの変数には、ユーザースクリプトのコード全体を挿入する必要があります。
そのため、注入せずに UserScript のスペースから FireFox のネイティブ関数を上書き\再定義\etc する方法を探しています。
// ==UserScript==
// ==/UserScript==
function doh4x()
{
window.history.__proto__.pushState = function(a, b, url) {window.location.href = url;}
}
function inject(func)
{
var source = func.toString();
var script = document.createElement('script');
script.text = "("+ source +")()";
document.head.appendChild(script);
}
inject(doh4x);