Tôi đang viết tiện ích mở rộng của Chrome để ghi lại lựa chọn văn bản của người dùng và gửi văn bản đã chọn tới tìm kiếm của Google.Chọn văn bản trong Google Tài liệu
manifest.json
{
"manifest_version": 2,
"name": "Selection Extension",
"description": "Search your selected text",
"version": "1.0",
"permissions": [
"tabs",
"http://*/*",
"https://*/*"
],
"background": {
"scripts": [
"background.js"
],
"persistent": false
},
"browser_action": {
"default_icon": "icon.png",
"default_title": "Mark it!!"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content_script.js"]
}
]
content_script.js
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method == "getSelection") {
sendResponse({data: window.getSelection().toString()});
} else {
sendResponse({});
}
});
background.js
function initBackground() {
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendMessage(tab.id, {method: "getSelection"}, function(response){
sendServiceRequest(response.data);
});
});
}
function sendServiceRequest(selectedText) {
var serviceCall = 'http://www.google.com/search?q=' + selectedText;
chrome.tabs.create({url: serviceCall});
}
initBackground();
cá tuyết này e hoạt động để lựa chọn trong các trang web (chẳng hạn như Gmail, Facebook, tin tức.) Tôi cũng muốn có thể có được lựa chọn trong PDF và Google Tài liệu (được xem trong trình duyệt). Trong các trường hợp sau: window.getSelection
trả về một chuỗi trống ...
Ai đó biết cách thực hiện?
Cảm ơn bạn vì điều này! Tôi sẽ loại bỏ các executeScript. –
Đối với tài liệu google, có một phần tử HTML có lớp "kix-selection-overlay". Lớp này là div thực tế tạo ra giao diện lựa chọn (tức là nền teal). Nhưng nó không được kết nối trong anyway để div có chứa các văn bản ... –
Về PDF: https://stackoverflow.com/questions/15527095/how-extension-get-the-text-selected-in-chrome-pdf- người xem –