$(本)的.css(“宽度”)不工作在Safari ancohor标签($(this).css(“w

2019-10-17 11:42发布

我使用CSS选择器来生成定制的弹出式窗口的网页模板 - 基本上,有的一些生产者不舒服的JS,我需要一个简单的方法为他们设置弹出窗口的大小等,我真的不兴趣在这个方法的优点,而是希望了解为什么jQuery的似乎在CSS定义在Safari一个锚无法获得的宽度和高度。

请参阅: http://f1shw1ck.com/jquery_sandbox/csspops.html

我的问题的肉:

用于选择器a.popup {width: 800px;height: 560px;}和锚<a href="http://www.metmuseum.org/toah/hd/apol/hd_apol.htm" class="popup">African Rock Art: Apollo 11 Cave Stone (c. 25,500 - 23,500 BCE)</a>为什么

if ($(this).css("width")) {   
windowParams.width = $(this).css("width");
}
if ($(this).css("height")) {   
windowParams.height = $(this).css("height");
}

这两个属性返回作为在Safari零?

的onclick在其他浏览器弹出警报:工具栏=没有,目录=没有,位置=没有,可调整大小= YES,菜单栏=没有,滚动条= YES,地位=没有,宽度= 800像素,高度= 560像素,顶部= 20,左= 240

警报在Safari:工具栏=没有,目录=没有,位置=没有,可调整大小= YES,菜单栏=没有,滚动条=是,状态=无,宽度= 0像素,高度= 0像素,顶部= 20左= 640

感谢您帮助我明白了。

Answer 1:

安迪是正确的。 这里有提供了一个解决方案:

获取JavaScript的图像的实际宽度和高度? (Safari /铬)



Answer 2:

它不会在Chrome中工作,要么。

从这个链接和这个其他堆栈溢出的答案 ,它看起来像的原因是WebKit浏览器将报告“0”或“未知”的大小,直到它被完全加载,这可能是为时已晚。

作为弥迦指出,这是因为Javascript和CSS并行加载,这意味着风格可能不完全通过脚本运行时应用。



文章来源: $(this).css(“width”) not working on ancohor tags in Safari