【问题标题】:How to insert HTML/JS into window (of type "panel") created by chrome.windows.create?如何将 HTML/JS 插入由 chrome.windows.create 创建的窗口(“面板”类型)?
【发布时间】:2013-05-19 08:50:27
【问题描述】:

我正在使用 chrome.windows.create 在 Chrome 扩展程序中创建一个窗口。它的类型为panel,因此它不是常规的浏览器窗口或选项卡,而是浮动在所有其他窗口之上的独立窗口。创建它之后,我现在需要在其中插入一些 HTML 和 JavaScript。那么这是怎么做到的呢? create 返回了一个 Window 对象,但它没有有用的钩子——只有几个属性。文档中没有任何内容建议如何做到这一点,而且我在任何地方都看不到它的 DOM 树。

有什么想法吗?

非常感谢!

【问题讨论】:

标签: javascript html dom google-chrome-extension window-object


【解决方案1】:

经过更多的阅读和实验,我找到了答案:创建窗口时,您需要创建一个选项卡并将其附加到窗口。因此,您创建的createData 对象将包含一个 URL 属性,该属性仅指向位于(默认情况下)扩展的根文件夹中的 HTML 页面(使用 CSS、JS,无论您想要什么)(因此,如果您想要您的 HTML 文件保存在其他地方,只需在文件名前加上路径)。现在,当创建窗口时,它使用一个选项卡创建(从 UI 的角度来看,它甚至不显示为选项卡 - 这很好)并且该选项卡包含您想要的内容。

【讨论】:

    【解决方案2】:

    试试这个我自己没有测试过,但可能会给你一些想法......

    (函数(){ chrome.windows.create({ 类型:“面板”, 网址:“https://www.google.co.in/” },函数(新窗口){ 控制台.log(新窗口); chrome.tabs.executeScript(newWindow.tabs[0].id, { 代码:'document.write("hello world");' }); }); })()

    正如Chromium Projects link about panels 中提到的,您可以像其他窗口类型一样操作窗格。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2011-04-23
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多