如何在firefox扩展中的javascript中将div插入浏览器主体的顶部
我是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";
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”;
文件正文。