0

これは JS 変数のスコープに関する n 番目の質問ですが、残りを読んだところ、答えが得られませんでした。

var notification = window.webkitNotifications.createNotification(
'image.png',                      // The image.
'New Post: ',// The title.
'New stuff'// The body.
);

var itemLink = 'http://pathtothefile.com';

notification.onclick = function(itemLink) { 
window.focus(); 
window.open(itemLink,'_blank' );
this.cancel(); 
};

notification.show();

グローバル スコープで定義されている itemLink を onclick 関数で動作させるにはどうすればよいですか?

4

2 に答える 2

2

関数からパラメーターを削除します。

notification.onclick = function(itemLink) { // overrides itemLink in the global
                                            // object.

固定コード:

notification.onclick = function() { 
    window.focus(); 
    window.open(itemLink,'_blank' );
    this.cancel(); 
};
于 2012-05-20T09:18:25.213 に答える
1

名前が競合している間は、ローカル変数が優先されます。引数を削除するか、名前を変更してくださいitemLink

notification.onclick = function(something_else) { 
    //global itemLink should be accessible
};
于 2012-05-20T09:18:43.127 に答える