2011-02-24 126 views
1

我目前正在使用Google Chrome扩展程序开发覆盖图。 让我来解释一下这个架构。我在他的content_script中有我的扩展名:overlay.js。该文件将注入我在网页上的工具栏使用从iframe中删除网页

overlayURL = chrome.extension.getURL("overlay.html"), 
iframe = $('<iframe id="YouroverlayFrame" src="'+overlayURL+'">'); 

body.append(iframe); 

所以进球是overlay.html将出现在我的窗口顶部。但我有一个小问题,那就是我的iframe,隐藏了我正在访问的真实网页。所以我想知道如何可以将所有网页取下来:40px,然后覆盖层不会覆盖网页。

例子更容易:

随着覆盖:http://img259.imageshack.us/img259/2329/withy.png

没有覆盖:提前http://img717.imageshack.us/img717/1708/without.png

感谢。

编辑:24/02/2011 - 18:49

我已经尝试过这样的:

<script type="text/javascript"> 
    document.getElementById('body').setAttribute("style", "margin-bottom: 40px;"); 
</script> 

但没有奏效。

回答

0

如果您可以将HTML注入页面(如iframe),那么您应该能够在iframe的高度量的<body>标记的顶部添加页边距。那应该修复它为网站。

在JavaScript它会是:

document.getElementsByTagName('body')[0].style.marginTop = '30px'; // or whatever your height is 

让我知道这是否为你。

+0

这就是我试过,但它没有奏效。 Sindar 2011-02-24 17:48:43

+0

我想知道这是否也取下了'position:absolute'元素。他们会留下还是将他们搬走? – pimvdb 2011-02-24 17:49:26

+0

查看我添加的代码。 ''body''不是身份证。所以你需要获得页面上元素的第一个元素,它们是'body'元素。此外'底部边距'不存在,并且位于元素的错误末端。你的可能会改为:'document.getElementsByTagName('body')[0] .setAttribute('style','margin-top:40px;');'应该指出的是,这将吹走任何其他样式在body标签的'style'属性上。 – sholsinger 2011-02-24 17:50:01