我为chrome做了一个扩展,它依赖于获取页面的选定文本。
感谢这里的一些问题,我设法做到了这一点,但它似乎很不稳定,只在“大多数”页面上工作。
任何想法原因:
sendResponse({data: window.getSelection().toString()});
我的selection.js中的仅适用于某些网站,但不起作用,例如:
它只是与页面结构有关而不值得处理吗?
编辑: 我绝对可以将问题与此代码隔离开来,因为调用此代码的代码会抓取所选文本并打开一个新选项卡,并将其作为URL的参数。我尝试过带有特殊字符的文字,一切正常。但是,这是打开新选项卡和已添加到扩展名的侦听器的功能。
function sendServiceRequest(selected) {
selected = selected.trim();
var text = selected.replace(/\s+/g,"_");
chrome.tabs.create({'url': chrome.extension.getURL('reader.html?text1=' + escape(text))}, function(tab) {
// Tab opened.
});
}
// Set the background page to listen for click events on the brower_action
// button. Listener then calls updateIcon() whenever triggered.
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response){
sendServiceRequest(response.data);
});
});
提前致谢!