这是关于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函数中工作?
答案 0 :(得分:2)
从函数中删除参数:
notification.onclick = function(itemLink) { // overrides itemLink in the global
// object.
固定代码:
notification.onclick = function() {
window.focus();
window.open(itemLink,'_blank' );
this.cancel();
};
答案 1 :(得分:1)
在名称冲突期间,局部变量优先。删除或重命名参数itemLink
。
notification.onclick = function(something_else) {
//global itemLink should be accessible
};