【发布时间】:2014-01-28 07:06:09
【问题描述】:
这可能是一个非常初学者的问题,但我要拔掉头发了,因为我不知道我做错了什么。此时,我要做的就是让选定的文本在警报或控制台中打印(用于测试)。我已确保 .toString() 方法已添加到从 window.getSelection(). 返回的对象中,无论我做什么,控制台和警报都显示为空白。谁能解释一下原因?
我在本地 Chrome 扩展程序中执行此操作。
manifest.json
{
"manifest_version": 2,
"name":"Testing",
"version": "0.1",
"icons": {
"48":"48.png"
},
"background": {
"scripts": [ "background.js" ]
},
"permissions":[ "tabs" ],
"browser_action": {
"default_icon": { "19":"img19.png" }
}
}
JavaScript
chrome.browserAction.onClicked.addListener(function(tab) {
var selObj = window.getSelection();
var selectionText = selObj.toString();
alert(selectionText); // displays a blank alert
console.log(selectionText); // adds a blank line in the console
});
我正在学习。提前致谢。
【问题讨论】:
-
您可以这样做
window.getSelection().toString()以节省一些空间,它对我来说很好。您知道,当您单击某些内容时,它可能会取消您的选择。因此,当取消选择时,getselection 应该返回空字符串 -
发布后,我进行了更多搜索,并遇到了一些类似的问题,说 DOM 元素只能通过注入
content.js脚本来访问,以便在您要访问的页面上运行。 This one was helpful,所以我会尝试并添加更新。 -
@ΘεόφιλοςΜουρατίδης 我也尝试了这种方法,但它没有在控制台或警报中打印(只是为了尝试)。我也尝试过使用
onmousedown,但我也无法让它工作。我专门在 Chrome 中工作...您能再帮我验证一下吗?
标签: javascript google-chrome google-chrome-extension