Chrome扩展程序内容脚本前置于正文无法正常工作

时间:2012-07-28 23:09:13

标签: jquery css google-chrome-extension

我有一个用于我正在处理的Google Chrome浏览器扩展程序的内容脚本,它会在用户所在的任何网页的顶部注入一个水平栏。问题是当我导航到google.com时,googles导航栏出现在我的栏上。这是前置代码

$("body").prepend("<iframe class='toolbar' src='http://localhost/toolbar.php' />");

以下是它的外观:

A website that the toolbar works on

以下是它在google.com上的显示效果 The problem that arises when the content is prepending to google. As you can see the google navbar overlaps with my bar

我正在尝试不同的方法,如果我在其他任何人之前解决问题,我会发布它。非常感谢任何帮助/指导。谢谢!

4 个答案:

答案 0 :(得分:1)

$(function(){
    setTimeout(function(){
        $("your html").prependTo('body');
        $("body > :not('#panDiv')").css({position:'relative',top:'23px'});
    },1000);
}); //end $

我希望这个很好。

答案 1 :(得分:0)

尝试以下内容:

//select the body
$("body")
//wrap the content in a div
.wrapInner("<div class='website'></div>")
//prepend the iframe to the body
.prepend("<iframe class='toolbar' src='http://localhost/toolbar.php'></iframe>");

如果你不能让这个工作,请告诉我。

答案 2 :(得分:0)

将栏的z-index css属性设置为一个大数字:

<iframe style="z-index:999999;"></iframe>

答案 3 :(得分:0)

    enter code here

var v = document.getElementsByTagName('html')[0].style.top.toString().substring(0, 2);

            if (parseInt(v, 10) > 0) {

                var pxx = (v + 35).toString();
                document.getElementsByTagName('html')[0].style.position = "relative"
                document.getElementsByTagName('html')[0].style.top = pxx + "px";

            }
            else {

                document.getElementsByTagName('html')[0].style.position = "relative"
                document.getElementsByTagName('html')[0].style.top = "35px";
            }


  var url = chrome.extension.getURL('docz/links.html');
  var fRame =  $(document.createElement('iframe'));
  var wrapDiv = $(document.createElement('div'));

    wrapDiv.attr('id','wDiv');
    wrapDiv.css('width','100%');  
    wrapDiv.css('height','35px' );
    wrapDiv.css('position','fixed' );
    wrapDiv.css('top','0 !important');
    wrapDiv.css('z-index','2147482637');   

  fRame.attr('id','fr1');
  fRame.attr('scrolling','no');
  fRame.attr('src',url);
  fRame.attr('frameborder','0');
  fRame.css('position','absolute');
  fRame.css('top', '0 !important');


  fRame.css('width','100%');
  fRame.css('height','35px');
  fRame.css('border','none'); 
  fRame.css('border-radius','10px 10px 10px 10px');
  fRame.css('background-color','silver'); 
  fRame.appendTo(wrapDiv);
  wrapDiv.prependTo(document.body);


try this... before was more crude approach put this code int  $(function(){});