如何在firefox扩展中的javascript中将div插入浏览器主体的顶部

如何在firefox扩展中的javascript中将div插入浏览器主体的顶部,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,我是firefox扩展的新手,不知道如何在javascript/内容脚本中开发类似于工具栏的div,并希望将其固定到主体的顶部(希望将主体向下推)。请帮忙 var toolbarHeight = 40; var div = document.createElement("div"); div.id = "myToolbar"; div.textContent = " "; var st = div.style; st.display = "block";

我是firefox扩展的新手,不知道如何在javascript/内容脚本中开发类似于工具栏的div,并希望将其固定到主体的顶部(希望将主体向下推)。请帮忙

  var toolbarHeight = 40;

   var div = document.createElement("div");
   div.id = "myToolbar";
   div.textContent = "  ";
   var st = div.style;
   st.display = "block";
   st.top = "0px";
   st.left = "0px";
    st.width = "100%";
     st.height = toolbarHeight + "px";
   st.background = "#F0F0F0";
   st.color = "grey";
   st.fontStyle = "italic";
   st.position = "fixed";
    document.body.style.webkitTransform = "translateY(" + toolbarHeight + "px)";
    document.documentElement.appendChild(div);
****2更新:**

I have seen update this works but div also moves with body
because document.documentElement.appendChild(div); 

is not working and with document.body.insertBefore(div, document.body.firstChild); 
div also moves down becuase of inserting in body
这是正常的,因为您在
body
中指定了样式
document.body.style.webkitttransform=//Chrome、Opera、Safari
document.body.style.msTransform=//IE 9
document.body.style.transform=“translateY”(+toolbarHeight+“px)”

问题在于风格

现在有一种可能,您不将此样式指定给
,而只在
上,您可以在
正文中创建两个

注意不能在一个HTML文件中创建两个
,因为它是一个有效的HTML文档

其中,第一个
是我们讨论的脚本的创建部分,其余的
则在
中创建。 最后,您可以使用
document.getElementById(“idofdiv”).style.webkitttransform=document.getElementById(“idofdiv”).style.msTransform=document.getElementById(“idofdiv”).style.transform=“translateY”(+toolbarHeight+“px)”

我对最后的评论感到震惊。 ****更新:** 有了这个评论,我理解你的问题。 我复制你的新脚本并粘贴到我的笔记本上。 我在Firefox和Chromium上打开文件HTML(这是Ubuntu上Chrome的名称)。 您可以在上看到输出和差异。 现在问题只出现在
document.body.parent.style.webkitTransform='translateY(40px)'

我发现为什么不起作用,而这在
Firefox
IE
OPERA
上不受支持。 你看到了吗

现在我把它换成

document.body.style.webkitTransform =         // Chrome, Opera, Safari
  document.body.style.msTransform =           // IE 9
  document.body.style.transform = "translateY(" + toolbarHeight + "px)";
在Chrome上,输出是相等的

旧版:

我把你的剧本放在我的笔记本上

在代码内部,
document.body.parent.style.webkitttransform='translateY(40px)'上有一个错误,错误为:

TypeError: document.body.parent is undefined
我不知道这是我删除的。 现在我遇到了另一个错误
TypeError:document.body在
var div=document.createElement(“div”)上为null
我在谷歌上搜索,然后修复
现在,我插入
window.onload{}
并在脚本中插入push body down的标记

<script type="text/javascript">
  window.onload = function() {
  //document.body.parent.style.webkitTransform ='translateY(40px)';
  var div = document.createElement("div");
  var br=document.createElement("br");
  div.id="divs";
  div.style.display='block';
  div.style.width = "600px";
  div.style.height = "100px";
  div.style.background = "#C2E2FF";
  div.style.color = "grey";
  div.innerHTML = "my div";
  document.body.insertBefore(br, document.body.firstChild);
  document.getElementById("divs").style.fontStyle = 'italic';
  document.getElementById("divs").style.position = "fixed";

  }</script>

window.onload=函数(){
//document.body.parent.style.webkitttransform='translateY(40px)';
var div=document.createElement(“div”);
var br=document.createElement(“br”);
div.id=“divs”;
div.style.display='block';
div.style.width=“600px”;
div.style.height=“100px”;
div.style.background=“#C2E2FF”;
div.style.color=“灰色”;
div.innerHTML=“我的div”;
document.body.insertBefore(br,document.body.firstChild);
document.getElementById(“divs”).style.fontStyle='italic';
document.getElementById(“divs”).style.position=“fixed”;
}
输出没有查看主体,因为style=“fixed”上的错误(我说是错误,但这不是错误)是因为“replace”了(元素相对于浏览器窗口定位)。 我去掉这个,输出是正确的

我认为您的位置有问题,我建议您使用Firebug(firefox和chrome的工具)查找错误

关于你在这个职位上的信息

最终更新:**

I have seen update this works but div also moves with body
because document.documentElement.appendChild(div); 

is not working and with document.body.insertBefore(div, document.body.firstChild); 
div also moves down becuase of inserting in body
这是正常的,因为您在
body
中指定了样式
document.body.style.webkitttransform=//Chrome、Opera、Safari
document.body.style.msTransform=//IE 9
document.body.style.transform=“translateY”(+toolbarHeight+“px)”

问题在于风格

现在有一种可能,您不将此样式指定给
,而只在
上,您可以在
正文中创建两个

注意不能在一个HTML文件中创建两个
,因为它是一个有效的HTML文档

其中,第一个
是我们讨论的脚本的创建部分,其余的
则在
中创建。 最后,您可以使用
document.getElementById(“idofdiv”).style.webkitttransform=document.getElementById(“idofdiv”).style.msTransform=document.getElementById(“idofdiv”).style.transform=“translateY”(+toolbarHeight+“px)”

我对最后的评论感到震惊。 ****更新:** 有了这个评论,我理解你的问题。 我复制你的新脚本并粘贴到我的笔记本上。 我在Firefox和Chromium上打开文件HTML(这是Ubuntu上Chrome的名称)。 您可以在上看到输出和差异。 现在问题只出现在
document.body.parent.style.webkitTransform='translateY(40px)'

我发现为什么不起作用,而这在
Firefox
IE
OPERA
上不受支持。 你看到了吗

现在我把它换成

document.body.style.webkitTransform =         // Chrome, Opera, Safari
  document.body.style.msTransform =           // IE 9
  document.body.style.transform = "translateY(" + toolbarHeight + "px)";
在Chrome上,输出是相等的

旧版:

我把你的剧本放在我的笔记本上

在代码内部,
document.body.parent.style.webkitttransform='translateY(40px)'上有一个错误,错误为:

TypeError: document.body.parent is undefined
我不知道这是我删除的。 现在我遇到了另一个错误
TypeError:document.body在
var div=document.createElement(“div”)上为null
我在谷歌上搜索,然后修复
现在,我插入
window.onload{}
并在脚本中插入push body down的标记

<script type="text/javascript">
  window.onload = function() {
  //document.body.parent.style.webkitTransform ='translateY(40px)';
  var div = document.createElement("div");
  var br=document.createElement("br");
  div.id="divs";
  div.style.display='block';
  div.style.width = "600px";
  div.style.height = "100px";
  div.style.background = "#C2E2FF";
  div.style.color = "grey";
  div.innerHTML = "my div";
  document.body.insertBefore(br, document.body.firstChild);
  document.getElementById("divs").style.fontStyle = 'italic';
  document.getElementById("divs").style.position = "fixed";

  }</script>

window.onload=函数(){
//document.body.parent.style.webkitttransform='translateY(40px)';
var div=document.createElement(“div”);
var br=document.createElement(“br”);
div.id=“divs”;
div.style.display='block';
div.style.width=“600px”;
div.style.height=“100px”;
div.style.background=“#C2E2FF”;
div.style.color=“灰色”;
div.innerHTML=“我的div”;
文件正文。