0

以下の 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);
4

1 に答える 1