我正在开发一个Chrome扩展程序,它可以将选中/高亮显示的文本复制到一个文本区域。这是我目前为止使用的:
chrome.tabs.executeScript( {
code: "window.getSelection().toString();",
}, function(selection) {
document.getElementById("output").value = selection[0];
});
但现在我已经从popup.html切换到了这样一个窗口
background.js:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.windows.create({
url: chrome.runtime.getURL("window.html"),
type: "panel", height: 590, width:850, focused: false
}, function(win) {
});
});
我无法将选定的文本显示到这个窗口中。我还复制了activetab的当前URL,如下所示:
chrome.tabs.getSelected(windowId, function(tab) {
document.getElementById('url').innerHTML = tab.url;
var windowId = tab.id
});
我可以在新窗口中使用:
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
document.getElementById('url').innerHTML = tabs[0].url;
});
所以我的问题是**如何将选中/高亮显示的文本放入新创建的窗口中的文本区域?**是否有类似的东西,
chrome.tabs.query()
就为了高亮显示的文字
1条答案
按热度按时间xzabzqsa1#
使用executeScript的tabId参数注入单击的选项卡,然后使用以下任意方法传递文本:
'window.html?url=' + encodeURIComponent(text)
然后在window.js中使用decodeURIComponent。
这里有一个localStorage的例子。