如何将 HTML/JS 插入由 chrome.windows.create 创建的窗口(“面板”类型)?
Posted
技术标签:
【中文标题】如何将 HTML/JS 插入由 chrome.windows.create 创建的窗口(“面板”类型)?【英文标题】:How to insert HTML/JS into window (of type "panel") created by chrome.windows.create? 【发布时间】:2013-05-19 08:50:27 【问题描述】:我正在使用 chrome.windows.create
在 Chrome 扩展程序中创建一个窗口。它的类型为panel
,因此它不是常规的浏览器窗口或选项卡,而是浮动在所有其他窗口之上的独立窗口。创建它之后,我现在需要在其中插入一些 html 和 javascript。那么这是怎么做到的呢? create 返回了一个 Window 对象,但它没有有用的钩子——只有几个属性。文档中没有任何内容建议如何做到这一点,而且我在任何地方都看不到它的 DOM 树。
有什么想法吗?
非常感谢!
【问题讨论】:
这个错误正在code.google.com/p/chromium/issues/detail?id=319270进行跟踪 @zhaojing OP 已经解决了他们的问题,你的用例是什么? 【参考方案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 中提到的,您可以像其他窗口类型一样操作窗格。
【讨论】:
以上是关于如何将 HTML/JS 插入由 chrome.windows.create 创建的窗口(“面板”类型)?的主要内容,如果未能解决你的问题,请参考以下文章