既存の関数に動的にデータを追加する

Javascriptで既に定義されている関数にデータを追加できるかどうか疑問に思っていました。

    var win;
    window.onload= function()
    {

        win = window.onbeforeunload;
        win = win.toString();

        var firstLetter = win.indexOf('{');


        win = win.substring(firstLetter + 1, win.length - 1);
        //Getting the data of the function [firstLetter = first occurrence of { ]

        win = win + 'alert("More Unload");';

        `/* Here, I want to rebind var win to the window.onbeforeunload event*/`
    }   

    window.onbeforeunload = function() 
    {
        alert("Unload function");
        alert("More Unload");
    }

これは可能ですか?

ありがとう。

0

1 答え

new Function(yourCodeString)を使用して関数を作成できます。

しかし、この種のコードの書き換えは非常に面倒です。もしあなたがそれを必要とするならば、間違ったことをやっているのです!

1
追加された
少なくともfirefoxはonbeforeunloadで提供されたメッセージを表示しません。その機能で alert()を使用すると、ユーザーがクリックしなければならない 2回のポップアップが表示されるため、迷惑に思えます。
追加された 著者 ThiefMaster,
OK。 onbeforeunload関数を持つプラグインを作成していますを参照してください。私は、私のプラグインが統合されるページ上に私のonbeforeunloadが衝突しないことを確かめたい。
追加された 著者 Jayesh,
私はそれが働いているかどうかだけをテストするために警告を使用しました。
追加された 著者 Jayesh,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript