使Chrome扩展javascript文档应用于打开网页,而不是弹出窗口

使Chrome扩展javascript文档应用于打开网页,而不是弹出窗口,javascript,html,google-chrome,google-chrome-extension,Javascript,Html,Google Chrome,Google Chrome Extension,我正在写一个chrome扩展,我需要点击网页上的一个项目。可以使用document.getElementsByClassName(“className”)[0]找到该项。单击(),但如果我在弹出窗口中运行此操作,它将在弹出菜单中搜索该项。如何使其返回并单击网页中的项目?您应该创建一个按钮,并使用该按钮执行单击。内容脚本加载在HTML页面的上下文中,而不是扩展弹出窗口 您可以使用在内容脚本和主扩展代码之间发送消息 您的扩展代码可以向内容脚本发送如下消息: //查询当前窗口中的活动选项卡(将只有一

我正在写一个chrome扩展,我需要点击网页上的一个项目。可以使用
document.getElementsByClassName(“className”)[0]找到该项。单击()
,但如果我在弹出窗口中运行此操作,它将在弹出菜单中搜索该项。如何使其返回并单击网页中的项目?

您应该创建一个按钮,并使用该按钮执行单击。内容脚本加载在HTML页面的上下文中,而不是扩展弹出窗口

您可以使用在内容脚本和主扩展代码之间发送消息

您的扩展代码可以向内容脚本发送如下消息:


//查询当前窗口中的活动选项卡(将只有一个)
chrome.tabs.query({active:true,currentWindow:true},函数(tabs){
//向该选项卡发送消息(作为选项卡[0]),
chrome.tabs.sendMessage(tabs[0].id,{message:“执行”},函数(响应){
日志(“单击已执行”);
});
});
您的内容脚本可以像这样处理请求:


//从后台脚本(扩展的主要部分)侦听事件
chrome.runtime.onMessage.addListener(函数(请求、发送方、发送响应){
//此函数将在内容脚本中调用,以处理从主扩展代码接收的消息。
//如果分机请求单击,我们在此处执行此操作
如果(request.message==“执行单击”){
document.getElementsByClassName(“className”)[0]。单击()
}
});