0

私の質問は、Javascript を使用して、ページに既に存在する onclick 関数の値を変更することに関するものです。

ボタンがあります。このボタンには、次の onclick 関数があります。

onclick="if (confirm('Yahdy Yahdy yah?')) { someFunction(); }; return false;"

Javascript を使用して onclick 関数を次のように変更したり、someFunction(); を抽出したりしたいと思います。確認せずに直接実行します。私が理解しているように、スクリプトを使用して確認を確認することはできないため、私の唯一のオプションは someFunction(); を実行することです。直接。私の質問は、 someFunction() には、ページが読み込まれるたびにランダムに生成された値が含まれているため、 someFunction() に直接アクセスするにはどうすればよいかということです。

onclick="someFunction();"

それが基本的に私が望んでいることなので、onclick() を直接呼び出すことができます。これについては、喜んでバニラまたは jQuery を使用します。

TLDR: 古い onclick 関数の一部を抽出し、その部分だけを使用して新しい onclick 関数を作成したいと考えています。

4

1 に答える 1

2

あなたはこれを行うことができます:

var code = obj.onclick.toString();

これにより、そのクリック ハンドラーに割り当てられた JavaScript コードが得られます。これを検索して、探しているものを見つけ、クリック ハンドラーを別のものに再割り当てします。


これが最善の方法かどうかはわかりませんが、これが私にとってうまくいった方法です:

function nullConfirm() { return true;};

(function() {
    var obj = document.getElementById("test");
    var code = obj.onclick.toString();
    code = code.replace("confirm(", "nullConfirm(");
    var matches = code.match(/\{(.*)\}/);
    if (matches) {
        obj.onclick = function() {
            eval(matches[1]);
        }
    }
})();
于 2013-10-31T23:39:56.337 に答える