2012-03-30 34 views
10

Tôi muốn tạo tiện ích chrome đơn giản mà khi được nhấp sẽ mở url trong tab trình duyệt mới. Đây là những gì tôi có cho manifest.jasonTạo tiện ích mở rộng của Chrome để mở liên kết trong tab mới

{ 
    "name": "Sprout Social", 
    "description": "Shortcut to Sprout Social", 
    "permissions": [ 
     "tabs" 
    ], 
    "icons": { 
     "128": "128.png" 
    }, 
    "launch": { 
     "web_url": "http://www.sproutsocial.com" 
    } 
} 

Mọi trợ giúp đều tuyệt vời.

+0

Bạn đang nói đến liên kết nào? Một liên kết trên một trang? Một nút BrowserAction? – abraham

Trả lời

2

Tôi nghĩ rằng phương pháp mà bạn muốn xác định trong schema của bạn là

chrome.tabs.create 

chrome.browserAction.onClicked.addListener(function() { 

     chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) { 

     }); 

}); 
15

Ok, trước hết, manifest.json (không jason) có cấu trúc chặt chẽ, bạn không thể gây rối với nó.

https://developer.chrome.com/extensions/manifest.html

Bạn phải tạo một phần mở rộng trình duyệt hành động, có nghĩa là phần mở rộng của bạn sẽ có một nút gần nút công cụ.

https://developer.chrome.com/extensions/browserAction.html

Bạn không cần bất kỳ popup.html, bạn có thể bỏ qua phần đó. Bạn cần phải viết trang nền của bạn, nhiều người đặt tên cho nó background.html tập tin HTML này sẽ có mã của bạn, theo hình thức này:

<html><head><script> your script here (use as many lines as you want) </script></head>/html> 

HTML này sẽ không bao giờ xuất hiện.

Và mã có thể được bất cứ điều gì bạn muốn, như mã trong câu trả lời khác:

chrome.browserAction.onClicked.addListener(function() { 
    chrome.tabs.create({'url': "http://www.sproutsocial.com"}); 
}); 

Và đó là nó.

+0

+1 và cảm ơn bạn ... Cách tải trang trong tab hiện tại ??? – RajeshKdev

+3

RJK, hãy thử chrome.tabs.update ({url: 'http: //your.url.com'}); –

+2

YoArgentino hoạt động. Cảm ơn một lần nữa. :) – RajeshKdev

5

Giải pháp đơn giản, bạn không cần HTML.

Thêm phần này vào manifest.json

"browser_action": { 
    "default_icon": "images/icon38.png", 
    "default_title": "Your title" 
}, 
"background": { 
    "scripts": ["background.js"], 
    "persistent": false 
} 

Tạo background.js tập tin, với mã này:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({ url: "http://www.yoursite.com" }); 
}); 

Lưu ý: Tôi không thêm "permissions": ["tabs"] trong manifest.json vì nó thêm cảnh báo quyền: "Đọc lịch sử duyệt web của bạn" và điều đó có thể gây nhầm lẫn cho người dùng. Tiện ích vẫn hoạt động.

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