我正在使用 Chrome 扩展程序创建一个窗口chrome.windows.create
。它是 type panel
,因此它不是常规的浏览器窗口或选项卡,而是浮动在所有其他窗口之上的独立窗口。创建它之后,我现在需要在其中插入一些 HTML 和 JavaScript。那么这是怎么做到的呢?create 返回了一个 Window 对象,但它没有有用的钩子——只有几个属性。文档中没有任何内容建议如何做到这一点,而且我在任何地方都看不到它的 DOM 树。
有任何想法吗?
非常感谢!
我正在使用 Chrome 扩展程序创建一个窗口chrome.windows.create
。它是 type panel
,因此它不是常规的浏览器窗口或选项卡,而是浮动在所有其他窗口之上的独立窗口。创建它之后,我现在需要在其中插入一些 HTML 和 JavaScript。那么这是怎么做到的呢?create 返回了一个 Window 对象,但它没有有用的钩子——只有几个属性。文档中没有任何内容建议如何做到这一点,而且我在任何地方都看不到它的 DOM 树。
有任何想法吗?
非常感谢!
经过更多的阅读和实验,我找到了答案:创建窗口时,您需要创建一个选项卡并将其附加到窗口。因此,您的创建createData
对象将包含一个 URL 属性,该属性仅指向位于(默认情况下)扩展的根文件夹中的 HTML 页面(使用 CSS、JS,无论您想要什么)(因此,如果您希望将 HTML 文件保存在其他地方,只需在文件名前加上路径)。现在,当创建窗口时,它是使用一个选项卡创建的(从 UI 的角度来看,它甚至不显示为选项卡 - 这很好)并且该选项卡包含您想要的内容。
试试这个我自己没有测试过,但可能会给你一些想法......
(function(){ chrome.windows.create({ type: 'panel', url: " https://www.google.co.in/ " }, function (newWindow) { console.log(newWindow); chrome. tabs.executeScript(newWindow.tabs[0].id, { code: 'document.write("hello world");' }); }); })()
并且正如在这个Chromium Projects 链接中提到的关于面板的那样,您可以像其他窗口类型一样操作面板。