首次单击时Chrome扩展程序弹出窗口过高

3
几天前我发现,当您点击扩展按钮并弹出窗口时,如果需要高度小于350px,其高度比实际需要的要高得多。当弹出窗口中发生某些事情(例如动画)时,高度会根据内容进行适当调整。将高度设置为html、body和一般的包装元素都没有起作用。这可能是Chrome最新更新中的某个错误,我无法在早期版本中进行测试,因为存在自动更新。
非常感谢您的想法和建议。
Libor 更新:我开始研究可能导致此行为的原因,并发现这是由Twitter和Google Plus共享按钮引起的。它们都修改DOM结构,添加脚本标记,从而添加iframe。当注释掉这些代码时,弹出气泡以正确的大小显示。奇怪的是,Facebook Like按钮的脚本更或多或少地做了同样的事情,但它却不会完全搞砸布局。

你的问题和这个一样吗? - Can't Tell
非常相似,但是Chrome在最近的更新后开始表现出这种方式,所以我不认为它应该有任何关联。 - sKopheK
2个回答

4

就像这里所说的那样,解决这个问题的好方法是将<html>改为<!doctype html>


这对我解决了弹出窗口高度不稳定的问题。谢谢! - Lounge9
我遇到了一个问题,即我的扩展程序中 href 链接的第一次点击未更改页面。在 html 标签中添加 !doctype 似乎也起作用了。 - DMart

1

我的扩展程序和Windows 7上的Chrome 19也有同样的问题。我必须指出,在之前的Chrome版本中没有任何问题。正如你所说,这个问题只在弹出窗口第一次出现时出现 - 之后它会正确地缩小)。

我在我的扩展程序中使用了jQuery,我认为我已经部分解决了这个问题,方法是添加

    $("body").fadeOut(10).fadeIn(50);

虽然它并不总是有效(如果您增加fadeIn延迟,它可能会有效!)。希望有人能提供更好的解决方案。

编辑。 使用您的提示,这应该保证始终有效,尽管用户可能会在一瞬间看到大小调整发生:

    $(window).load(function() { 
        $("body").fadeOut(10, function() { $(this).show(); }); 
    });

谢谢,这个方法很有效,尽管我认为正确的语法应该是$('body').fadeOut(500, function() { $(this).show() }); 例如。 - sKopheK
删除分享图标对我来说似乎不起作用。我已经编辑了我的帖子并添加了一些代码,提供了更一致的结果。尽管如此,我仍在寻找最终解决方案。 - azrafe7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接