1

我正在使用 CSS 选择器为 Web 模板生成自定义弹出窗口 - 基本上,一些制作者对 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弹出警报:toolbar=no,directories=no,location=no,resizable=yes,menubar=no,scrollbars=yes,status=no,width=800px,height=560px,top=20,left =240

Safari 中的警报:toolbar=no,directories=no,location=no,resizable=yes,menubar=no,scrollbars=yes,status=no,width=0px,height=0px,top=20,left=640

谢谢你帮助我理解。

4

2 回答 2

3

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

使用 JavaScript 获取图像的真实宽度和高度?(在 Safari/Chrome 中)

于 2009-09-03T18:00:44.390 回答
2

它在 Chrome 中也不起作用。

这个链接这个其他 Stack Overflow 答案看来,原因似乎是 Webkit 浏览器在完全加载之前会报告“0”或“未知”的大小,这可能为时已晚。

正如 Micah 所指出的,这是因为 Javascript 和 CSS 是并行加载的,这意味着在脚本运行时样式可能尚未完全应用。

于 2009-09-03T17:55:40.597 回答