3

我注意到当单击扩展图标时,用于 chrome 的Buffer 应用程序对浮动 div 的处理方式略有不同。这是如何实现的?

我不相信他们会在新窗口中执行此操作,因为我没有看到生成的附加窗口。

基本上我需要的是在单击图标时显示的厚框。

任何有关如何做到这一点的见解将不胜感激。

4

1 回答 1

0

他们使用来自该背景页面的 api 来监听单击事件以了解单击浏览器操作按钮的时间。

这是该 API 页面的链接:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(tab.id, {'file': 'createPopup.js'}, function callBackStub(){})
});

createPopup.js

你的 html 将在一个字符串中。我个人建议这样写:

var widgetHtml = 
  '<div id="main">              '+
  '  <p>some stuff goes here</p>'+
  '</div>';

然后随着您的 html 的增长,您可以对开始引用和结束进行列编辑'+

好的,现在您要做的是将您的 html 放入 iframe 中,但不设置 src 属性。像这样:

var iframe = document.createElement('iframe');
document.documentElement.appendChild(iframe); //fastest way to append to DOM: http://jsperf.com/insertbefore-vs-appendchild/2
iframe.contentDocument.body.innerHTML = widgetHtml;

为什么?因此,您的内容不会采用页面其余部分的样式。

嗯,然后您可以执行 translateX 或转换左/右位置以将元素滑入页面。

于 2012-04-11T05:38:27.567 回答