【问题标题】:Getting active tab and generating confirm window获取活动选项卡并生成确认窗口
【发布时间】:2023-01-26 15:22:03
【问题描述】:

我正在尝试开发获取活动选项卡并在当前打开的选项卡处生成确认窗口的扩展。但是我不能用“window.confirm”来做到这一点,因为没有定义窗口。这是我的代码:

背景.JS

var notifyTimer = setInterval(func,5*1000);
  console.log('setinterval ran');

  
  function func(){ 
  let ActiveTab = getCurrentTab();
  console.log(ActiveTab)

}

async function getCurrentTab() {
  let queryOptions = { active: true, lastFocusedWindow: true };
  let [tab] = await chrome.tabs.query(queryOptions);
  console.log(tab.url)
  //alert(" Hello!")
  // SOME CODE TO GENERATE CONFIRM WINDOW or ALERT
  return tab;
}

目前它正在获取当前活动选项卡,但我不知道如何生成确认窗口

请帮助我使用此代码生成警报。

【问题讨论】:

  • 如果您使用的是清单 V3,则后台没有 DOM,因此您不能在其上使用 alert()。
  • 好吧,是的,我正在使用清单版本 3,并且那里没有定义窗口。在活动选项卡上生成警报或确认窗口的可能解决方案是什么?
  • 使用offscreen文档,您可以
  • 您还可以使用 chrome.windows.create
  • @Robbi,由于offscreen 是不可见的,因此不能替代alert

标签: javascript google-chrome-extension google-chrome-devtools


【解决方案1】:

这是你想做的吗?



清单.json

{
  "name": "hoge",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": [
    "scripting"
  ],
  "host_permissions":[
    "<all_urls>"
  ],
  "background": {
    "service_worker": "background.js"
  }
}

背景.js

var notifyTimer = setInterval(func, 5 * 1000);
console.log('setinterval ran');


function func() {
  let ActiveTab = getCurrentTab();
  console.log(ActiveTab)

}

const alert = () => {
  alert(" Hello!");
}

async function getCurrentTab() {
  let queryOptions = { active: true, lastFocusedWindow: true };
  let [tab] = await chrome.tabs.query(queryOptions);
  console.log(tab.url)
  //alert(" Hello!")
  // SOME CODE TO GENERATE CONFIRM WINDOW or ALERT
  chrome.scripting.executeScript({
    target: { tabId: tab.id },
    func: alert
  });

  return tab;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 2012-01-09
    • 2023-03-22
    • 1970-01-01
    • 2014-09-12
    相关资源
    最近更新 更多