Pre:我很确定,有一个微妙的Firefox错误,但我无法将其隔离,我正在寻求帮助来实现这一目标。
所以这很奇怪:
以下问题':我扩展了我的(红宝石)页面以获取欧盟 - cookie故事,但这不是重点;我现在得到的情况是,一切都适用于(几乎)所有浏览器和(几乎)所有页面。
在FireFox上一个页面上的,我得到"TypeError: Argument 1 of Window.getComputedStyle is not an object."
其他页面按预期工作(相同的模板,相同的逻辑)
只有当我一起使用$().show()
和 css: display:none;
时才会出现此错误。如果我评论display: none;
样本:没有错误,如果我评论(或删除).show()
:没有错误
我找到了一个解决方法,(我使用visibility: hidden;
但我仍然确定,这不是我的错,而且我应该告诉FF bug修复,但我只能在一个上重现错误 - 我的主页(尚未在线)
我没有得到任何其他错误。
css看起来像这样:(摘录)
div#site-cookie-alarm {
visibility: hidden;
position: absolute;
display:none;
top: 0px;
left: 0px;
width: 100%;
...
jquery看起来像这样:(摘录和解决方法在这里)
h=$('div#site-cookie-alarm').height() #just a workaround
$('div#site-cookie-alarm').show().height(0).css("visibility","visible").animate({height:h}, 1000)
任何想法,尝试什么,孤立这个问题?
编辑: sry,忘了:Windows 7/64上的FF是29.0.1
EDIT添加了调试信息
jQuery尝试确定display
的默认(浏览器)值,如果它是display:none;
function css_defaultDisplay( nodeName ) {
var doc = document,
display = elemdisplay[ nodeName ];
if ( !display ) {
display = actualDisplay( nodeName, doc );
在那里尝试创建div
// Called ONLY from within css_defaultDisplay
function actualDisplay( name, doc ) {
var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
display = jQuery.css( elem[0], "display" );
创建自己的副本(?)
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
回到actualDisplay,其中elem现在是一个空对象,所以elem[0]
也是undefined
有undefined
elem
getStyles(elem=undefined)jquery.js?body=1
curCSS(elem=undefined, name="display", _computed=undefined)jquery.js?body=1
css(elem=undefined, name="display", extra=undefined, styles=undefined)jquery.js?body=1
actualDisplay(name="div", doc=Document ?locale=de)jquery.js?body=1
css_defaultDisplay(nodeName="div")jquery.js?body=1
showHide(elements=Object[div#site-cookie-alarm], show=true)jquery.js?body=1
show()jquery.js?body=1
(?)(speed=undefined, easing=undefined, callback=undefined)jquery.js?body=1
step_through(step_number=0)site_c...?body=1
(?)()?locale=de (Zeile 4)