弹出页面中的链接不起作用

时间:2013-03-01 09:30:12

标签: jquery google-chrome google-chrome-extension

我正在为页面添加书签页面并将其作为JSON与localStorage存储。 这是截图 -
Extension screenshot
问题是,当我点击链接时,没有任何反应 所以我尝试将所有链接分配一个.link类,并附加了这个监听器 -

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

但仍然没有发生任何事。我右键单击浏览器操作按钮并尝试检查弹出窗口,它显示没有连接到该链接的监听器。

这是github上的source of whole project


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

2 个答案:

答案 0 :(得分:1)

您应该在链接的href属性中放置正确的URL地址。因此,在$('#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] +

它会起作用!

答案 1 :(得分:0)

试试这个,我在your code

中做了一些更改
$('.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!');
});