2010-12-28 57 views
7

リンクがいくつかあるChrome拡張機能があります。現在、リンクをクリックすると何もしません。クリックすると新しいタブでそれらを開くようにしたいと思います。これは可能ですか?タブでpopup.htmlのリンクを開くにはどうすればよいですか?

+0

また、いくつかの良い答えがあります:http://stackoverflow.com/questions/8915845/chrome-extension-open-a-link-from-popup-html-in-a-new-tab – rogerdpack

答えて

17

リンクにtarget="_blank"を追加します。

もう1つの方法は、リンク上でmousedownイベントにリンクを開くJavaScriptコードを添付することです。

またtarget="_blank"で開いすべてのリンクを作るためにbaseタグを使用することができます。

<head> 
    <base target="_blank"> 
</head> 
+0

他にもあります方法? – user556396

+1

+1。リンクに 'http://'(wwwだけでなく)を指定することを確認してください。そうしないと、拡張子に相対して開きます。 – Kai

+0

@ user556396更新を参照してください – serg

6

を参照してくださいがあるとこれは私のアプローチでした:

  1. リンクを使用してpopup.htmlを作成します(リンクがクリックされてもChromeはブロックされません)。
  2. popup.jsを作成し、ページ内にリンク:<script src="popup.js" ></script>
  3. がpopup.jsに次のコードを追加します。すべてをだ

    document.addEventListener('DOMContentLoaded', function() { 
        var links = document.getElementsByTagName("a"); 
        for (var i = 0; i < links.length; i++) { 
         (function() { 
          var ln = links[i]; 
          var location = ln.href; 
          ln.onclick = function() { 
           chrome.tabs.create({active: true, url: location}); 
          }; 
         })(); 
        } 
    }); 
    

を、リンクはその後動作するはずです。

+0

あなたは閉包で変数 'i'を閉じるのを忘れました。さらに、 'chrome.tabs.create'はパーミッションを必要としません。 –

+0

私はiを閉じる必要はありません。lnとlocationだけで十分です。あなたは許可について正しいです、私の答えを変更しました。 – lasantha

関連する問題