0

我正在为书签页面制作一个 chrome 扩展,并将它们存储为带有 localStorage 的 JSON。这是一个屏幕截图 -
扩展截图
问题是当我点击链接时,什么也没有发生。
所以我尝试为所有链接分配一个 .link 类,并附加了这个监听器 -

$('.link').click(function(){
  var url = $(this).attr('href');
  var urlList = {};
  urlList['url'] = url;
  chrome.tabs.create(urlList);
});

但仍然什么也没发生。我确实右键单击浏览器操作按钮并尝试检查弹出窗口,它表明没有附加到链接的侦听器。


这是github上整个项目的来源。


请帮我让这个链接打开一个带有指定网址的新标签。

4

2 回答 2

1

您应该将正确的 url 地址放在链接的 href 属性中。因此,在您$('#viewAll').click(function(){ ... }的回调中,替换该行

str += '<tr>' + '<td><a class="link" href="' + objects[keys[i]] + '">' + keys[i] +

经过

str += '<tr>' + '<td><a class="link" href="http://' + keys[i] + '">' + keys[i] +

它会起作用的!

于 2013-03-01T10:05:01.270 回答
0

试试这个,我对你的代码做了一些改变

$('.link').live('click', function() {
  var url = $(this).attr('href');
  $('#message').html(url);
  chrome.tabs.create({ 'url' : url });
});

$('#viewAll').click(function(){
  var objects = JSON.parse(localStorage['DocSaver'])

  var keys = [];
  for (key in objects) {
    keys.push(key);
  }
  var i = 0;
  var keyslen = keys.length;
  var str = '';
  //SORTED KEY ITERATION
  while (i < keyslen) {
    str += '<tr>' + '<td><a class="link" href="' + objects[keys[i]] + '">' + keys[i] +
    '</a></td></tr>'
    ;
    ++i;
  }
  $('#viewFrame > table').html(str);
  $('#viewFrame').css('display','block');
  $('#message').html('Done displaying!');
});
于 2013-03-02T12:36:51.717 回答