gpt4 book ai didi

google-chrome - 是否可以通过 Chrome 扩展程序中的上下文菜单项调用内容脚本方法?

转载 作者:行者123 更新时间:2023-12-04 14:02:57 25 4
gpt4 key购买 nike

我正在尝试使用上下文菜单项来调用我在内容脚本中编写的方法。
那可能吗?

正如我所尝试的,上下文菜单只能在后端做一些事情。
例如。

// A generic onclick callback function.
function genericOnClick(info, tab) {
console.log("item " + info.menuItemId + " was clicked");
console.log("info: " + JSON.stringify(info));
console.log("tab: " + JSON.stringify(tab));
}

// Create one test item for each context type.
var contexts = ["page","selection","link","editable","image","video",
"audio"];
for (var i = 0; i < contexts.length; i++) {
var context = contexts[i];
var title = "Test '" + context + "' menu item";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],
"onclick": genericOnClick});
console.log("'" + context + "' item:" + id);
}

此示例无法在 上记录信息当前页面 但在背景页面上。

我有一个 内容脚本在指定页面上生成一些东西:
var showInfo = function(){ var dialogBoxWrapper = document.createElement("div");
document.body.appendChild(dialogBoxWrapper);}

我需要通过上下文菜单调用此功能。
我该怎么办?

最佳答案

您可以引用以下代码作为引用,单击上下文菜单时,将调用内容脚本中的函数。

示例演示

list 文件

{
"name": "Content to Context menu",
"description": "http://stackoverflow.com/questions/14452777/is-that-possible-calling-content-script-method-by-context-menu-item-in-chrome-ex",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"myscript.js"
]
}
],
"permissions": [
"contextMenus"
]
}

背景.js
function genericOnClick(info, tab) {
console.log("item " + info.menuItemId + " was clicked");
console.log("info: " + JSON.stringify(info));
console.log("tab: " + JSON.stringify(tab));

//Add all you functional Logic here
chrome.tabs.query({
"active": true,
"currentWindow": true
}, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
"functiontoInvoke": "showInfo"
});
});
}

// Create one test item for each context type.
var contexts = ["page", "selection", "link", "editable", "image", "video",
"audio"];
for (var i = 0; i < contexts.length; i++) {
var context = contexts[i];
var title = "Test '" + context + "' menu item";
var id = chrome.contextMenus.create({
"title": title,
"contexts": [context],
"onclick": genericOnClick
});
console.log("'" + context + "' item:" + id);
}

我的脚本.js
var showInfo = function () {
console.log("Show Info is invoked");
}
var showAnotherInfo = function () {
console.log("Show Another Info");
}
chrome.extension.onMessage.addListener(function (message, sender, callback) {
if (message.functiontoInvoke == "showInfo") {
showInfo();
}
if (message.functiontoInvoke == "showAnotherInfo") {
showAnotherInfo();
}
});

引用
  • Content Scripts
  • Context Menu
  • Extension API
  • 关于google-chrome - 是否可以通过 Chrome 扩展程序中的上下文菜单项调用内容脚本方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14452777/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com