2012-08-11 16 views
8

Có cách nào để truy xuất tất cả các tab đang mở và sắp xếp chúng vào một mảng trong Chrome không? Vì vậy, nếu Gmail và YouTube được mở, sẽ có hai mục nhập trong mảng có tiêu đề "gmail.com" và "youtube.com".Truy xuất tab nào đang mở trong Chrome?

Trả lời

9

Vâng, đây là cách bạn có thể làm điều này:

Lưu ý: này đòi hỏi sự cho phép "tab" được xác định trong tập tin manifest của bạn.

chrome.windows.getAll({populate:true}, getAllOpenWindows); 

function getAllOpenWindows(winData) { 

    var tabs = []; 
    for (var i in winData) { 
    if (winData[i].focused === true) { 
     var winTabs = winData[i].tabs; 
     var totTabs = winTabs.length; 
     for (var j=0; j<totTabs;j++) { 
      tabs.push(winTabs[j].url); 
     } 
    } 
    } 
    console.log(tabs); 
} 

Trong ví dụ này tôi chỉ thêm url tab như bạn hỏi trong một mảng nhưng mỗi "tab" đối tượng chứa nhiều thông tin hơn. Url sẽ là URL đầy đủ, bạn có thể áp dụng một số cụm từ thông dụng để trích xuất tên miền từ URL.

+1

Quyền "tab" có thể được chỉ định trong tệp kê khai như thế nào? Tôi nên viết gì trong tệp kê khai để bật tùy chọn này? –

+0

'chrome.windows' không xác định ... Bạn làm gì trong trường hợp này? –

3

Trừ khi bạn đang xây dựng một plugin, không có cách nào tôi biết để truy xuất tất cả tên của các tab đang mở, đặc biệt nếu các tab chứa nội dung từ các tên miền riêng biệt. Nếu bạn có thể làm một điều như vậy, nó có thể là một vấn đề an toàn!

Bạn có thể kiểm tra tài liệu Chrome ở đây: http://developer.chrome.com/extensions/devguide.html

+0

Tôi đang tạo plugin Chrome. – Ray

+0

Đó là tin xấu vì tôi đang cố di chuyển tất cả các tab từ Chrome sang Firefox theo cách thủ công (hướng khác là thẳng về phía trước vì tôi có thể làm cho Firefox chạy bất kỳ tập lệnh nào ở chrome: // level). – lilydjwg

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