我想显示不同的菜单选项,具体取决于是选择了数字还是文字。
我尝试过播放内容脚本,但是我无法让它们在gmail中工作,这是我需要它工作的地方。这是我拥有的,它适用于除gmail以外的网站(它是一个https的东西吗?)
Background.html
<script src="driver.js"></script>
content_script.js
document.addEventListener("mousedown", function(event){
if(event.button == 2) {
var selection = window.getSelection().toString();
chrome.extension.sendRequest({cmd: selection});
}
}, true);
driver.js
chrome.extension.onRequest.addListener(function(request) {
alert(request.cmd);
});
的manifest.json
{
"name": "Context Menu Search",
"description": "Opens the selected text as keyword in a new window",
"version": "0.1",
"permissions": ["contextMenus"],
"content_scripts": [
{
"matches": ["http://*/*","https://*/*"],
"js": ["content_script.js"]
}
],
"background_page": "background.html"
}
答案 0 :(得分:1)
Selection type changes context menu using chrome extension
您必须设置鼠标按下的侦听器。在创建菜单之前,没有其他方法可以获取所选文本。
见这个问题:
chrome extension context menus, how to display a menu item only when there is no selection?
以下是其余部分代码的部分代码。
document.addEventListener("mousedown", function(event){
//right click
if(event.button == 2) {
if(window.getSelection().toString()) {
chrome.extension.sendRequest({cmd: "createSelectionMenu"});
} else {
chrome.extension.sendRequest({cmd: "createRegularMenu"});
}
}
}, true);