2012-04-27 26 views
6
function doit() { 
alert(3); 
// Statement 1 
// chrome.tabs.create({url:"http://www.google.com"}); 
// Statement 2 
// chrome.tabs.update({url:"http://en.wikipedia.org"}); 
alert(4); 
} 


chrome.browserAction.onClicked.addListener(doit); 

Khi kịch bản chạy như là, tôi nhận được thông báo JS của 3 và 4. OK."chrome.tabs.create" hoạt động, nhưng "chrome.tabs.update" không

Khi tôi nhận xét trong câu 1 và chạy tập lệnh, tôi nhận cảnh báo JS là 3, sau đó Google mở trong tab mới hoạt động, sau đó tôi nhận cảnh báo JS là 4. Như dự kiến.

Khi tôi đưa ra nhận xét 1 và nhận xét trong tuyên bố 2, tôi nhận được cảnh báo JS là 3, và đó là điều đó.

Theo http://code.google.com/chrome/extensions/tabs.html#method-update, Tôi không cần chuyển đối tượng tabId, vì nó "mặc định cho tab đã chọn của cửa sổ hiện tại". Đối tượng url được định nghĩa là "URL để điều hướng tab đến", khi tôi nhận thấy khi tôi chạy chrome.tabs.create trong câu lệnh 1.

Tại sao câu lệnh chrome.tabs.update của tôi không hoạt động?

Trả lời

0

Bạn phải cho biết tab nào (tab.id) bạn muốn cập nhật.

chrome.tabs.update(id,{url:"http://en.wikipedia.org"}); 
+0

Theo , các tabId là tùy chọn và "mặc định để được lựa chọn tab của cửa sổ hiện tại ". – mdslup

5

Thông số tabId phải được chỉ định. Cung cấp null nếu bạn muốn sử dụng cài đặt mặc định. Nếu không, các lỗi sau xảy ra:

Error in event handler for 'browserAction.onClicked': Error: Invalid value for argument 1. Expected 'integer' but got 'object'.

Thông báo này được đăng tại trang nền. Để truy cập bảng điều khiển này, hãy làm theo bốn bước trong this answer.

đang Corrected:chrome.tabs.update(null, {url:"http://en.wikipedia.org"});

+0

Tính năng này hoạt động. Cảm ơn. Định nghĩa của tôi về 'đối số tùy chọn' luôn luôn là ... nó không phải được thông qua. Ngoài ra, cảm ơn thông tin về cách truy cập trang nền. – mdslup

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