4

我一直在关注Google Chrome Extensions Developer's guide,到目前为止,我已经能够创建一个带有浏览器操作的扩展,而不会弹出会触发 HTML 格式的 webkit 通知的弹出窗口。

事实上,这个 HTML 文件包含操作按钮、链接和 javascript,但它们似乎都没有响应。

这是一种设计行为,还是有办法在这些 webkit 通知中嵌入 javascript/链接/按钮?

编辑:

以下是有关该主题的一些新见解:

Javascript

这是一个不起作用的 HTML 通知页面:

<html>
<head>
<script>
  alert("hey");
</script>
</head>
<body>
  content
</body>
</html>

结果,通知都是空白的;不显示文本“内容” 。

但是,如果我删除“警报”,则会显示文本“内容” 。

我首先认为 Javascript 阻止了页面正确呈现,但我尝试了其他方法:

<script>document.write("content");</script>

此 javascript 命令已正确执行并显示文本"content"。然后我们可以假设即使在 webkit 桌面通知中也启用了 Javascript,但是“警报”功能被禁用,并破坏了通知页面的呈现。

链接

有些链接有效,有些则无效。以下是我迄今为止测试过的快速列表:

<a href="http://www.google.com/">Link</a>                   # => Doesn't work
<a href="http://www.google.com/" target="_top">Link</a>     # => Doesn't work
<a href="http://www.google.com/" target="_parent">Link</a>  # => Doesn't work
<a href="http://www.google.com/" target="_blank">Link</a>   # => Works (new tab)
4

2 回答 2

2

这一切都在Chromium Desktop Notifications API Specification中进行了解释,其中明确指出:

如果用户代理实现了 createHTMLNotification,它应该将 HTML 通知显示为独立的浏览上下文,在功能上与任何其他 HTML 网页等效,但具有以下属性:

  • 无法导航通知。通知上下文中窗口对象的 Location 属性应该是只读的。所有链接都应在新的非通知浏览上下文中打开。
  • 如果在通知上下文中的窗口对象上调用 close() 以响应用户手势,则用户代理应该像用户关闭通知一样继续进行,包括所有必需的事件处理。
于 2010-05-23T07:58:36.400 回答
2

更新:createHTMLNotification()已从草案规范和 Chrome中删除,因此这将不再有效。

最接近的是onclick整个通知窗口上的处理程序。它不太容易被发现(看起来不像链接),我还没有测试是否可以从它导航到链接。

于 2012-11-13T12:29:30.583 回答