2015-03-15 34 views
5

Tôi cần chạy tiện ích mở rộng của Chrome khi tab mới được mở và tài liệu html được tải.Mở rộng tiện ích mở rộng của Chrome trên tab mới mở

Tiện ích mở rộng cần kiểm tra tiêu đề tab mới và nếu nó bằng chuỗi được xác định trước, tab sẽ đóng.

Hiện tại, tôi đã quản lý để viết tiện ích mở rộng hoạt động khi tôi nhấp vào biểu tượng đó. Nhưng tôi muốn làm cho nó chạy mà không cần nhấp vào biểu tượng sau khi trang được tải trong tab mới.

Đây là mã hiện tại.

function getCurrentTabData(callback) { 
    var queryInfo = { 
    active: true, 
    currentWindow: true 
    }; 
    chrome.tabs.query(queryInfo, function(tabs) { 
    var tab = tabs[0]; 
    var title = tab.title; 
    var id = tab.id; 
    callback(title, id); 
    }); 
} 

document.addEventListener('DOMContentLoaded', function() { 

    getCurrentTabData(function(title, id) { 

    if(title == 'Page title') { 
     chrome.tabs.remove(id, function() { }); 
    } 

    }); 
}); 

Và đây là manifest.json tôi

{ 
    "manifest_version": 2, 

    "name": "Auto close tab", 
    "description": "Auto closes tab if title is matched", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "permissions": [ 
    "activeTab" 
    ] 
} 

Làm thế nào để làm cho nó chạy mà không cần nhấp chuột vào biểu tượng của nó?

Trả lời

7

Để thực hiện việc này trước hết, bạn sẽ cần phải có Trang nền sẽ quản lý trạng thái tiện ích của bạn. Bạn có thể đọc về nó ở đây: https://developer.chrome.com/extensions/background_pages

Sau đó, trong đoạn mã của trang nền, bạn sẽ cần phải lắng nghe khi tab được tạo ra với đoạn mã này:

chrome.tabs.onCreated.addListener(function callback) 

Đây là tài liệu hướng dẫn cho việc này: https://developer.chrome.com/extensions/tabs#event-onCreated

Hy vọng điều này sẽ giúp giải quyết vấn đề của bạn.

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