我是试图开发chrome扩展程序的设计师。请不要因为这个问题而感到内。不是。这就是我想要的:
此代码显然有效
FormulaColumn
我的问题是我无法将所选文本放入变量中。这不起作用:
var seltext = "apparat";
chrome.tabs.create({ url: "http://music.yandex.ru/search?text=" + seltext });
这也不是,或者我不明白如何通过链接对结果求和
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
var seltext = getSelectionText();
chrome.tabs.create({ url: "http://music.yandex.ru/search?text=" + seltext });
也不是
chrome.tabs.executeScript( {
code: "window.getSelection().toString();"
}, function(selection) {
document.getElementById("output").innerHTML = selection[0];
});
我只想为所选文本分配一个变量。看起来如此明显的任务,但事实并非如此。我认识的所有前端开发人员都没有解决方案。
答案 0 :(得分:1)
以下是一个最小扩展名,它使用您列出的第二种方法来检索当前选定的文本(在Chrome 68中进行了测试),根据选定的文本打开新的标签页:
manifest.json
:
{
"manifest_version": 2,
"version": "1.0",
"name": "Yandex Searcher",
"browser_action": {
},
"permissions": [
"activeTab"
],
"background": {
"scripts": ["main.js"],
"persistent": false
}
}
main.js
:
chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.executeScript({
code: "window.getSelection().toString(); "
}, function(selection) {
chrome.tabs.create({
url: "http://music.yandex.ru/search?text=" + selection[0]
});
});
});
演示: