2010-12-28 41 views
7

Tôi có một tiện ích mở rộng của Chrome có một số liên kết trong đó. Hiện tại khi nhấp vào các liên kết không làm gì cả, tôi muốn làm cho chúng mở trong một tab mới khi được nhấp. Điều này có thể không?Cách tạo liên kết popup.html mở trong tab?

+0

Ngoài ra còn có một số câu trả lời hay ở đây: http://stackoverflow.com/questions/8915845/chrome-extension-open-a-link-from-popup-html-in-a-new-tab – rogerdpack

Trả lời

17

Thêm target="_blank" vào liên kết.

Cách khác là đính kèm mã javascript mở liên kết vào sự kiện được tổ chức trên một liên kết.

Bạn cũng có thể sử dụng base thẻ để làm cho tất cả các liên kết mở với target="_blank":

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

là có một câu trả lời khác đường? – user556396

+1

+1. Đảm bảo chỉ định 'http: //' (không chỉ www.) Trong các liên kết hoặc chúng sẽ mở tương đối với phần mở rộng. – Kai

+0

@ user556396 xem cập nhật – serg

6

tôi đã cùng một vấn đề và đây là cách tiếp cận của tôi:

  1. Tạo popup.html với liên kết (và các liên kết không hoạt động khi được nhấp khi Chrome chặn chúng).
  2. Tạo popup.js và liên kết nó trong trang: <script src="popup.js" ></script>
  3. Thêm mã sau đây để 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}); 
          }; 
         })(); 
        } 
    }); 
    

Đó là tất cả, liên kết nên làm việc sau đó.

+0

Bạn đã quên đóng trên biến 'i' trong phần đóng. Hơn nữa, 'chrome.tabs.create' không yêu cầu bất kỳ quyền nào. –

+0

Tôi không cần phải đóng trên i, chỉ ln và vị trí là đủ. Bạn đã đúng về quyền, đã sửa đổi câu trả lời của tôi. – lasantha

Các vấn đề liên quan