我需要根据每个浏览器更改一个值,因为它们的呈现方式各不相同。
if (navigator.appName == 'Netscape'){
top = 17;
}
这很有效但不幸的是Firefox和Safari都显示为“Netscape”
我如何使用jQuery 1.3.2来检测所有这些?现在jquery.support
已经消失,我在jquery.browser
下找不到任何信息。
谢谢!
答案 0 :(得分:5)
如果您必须检测浏览器(尽管有针对它的警告),ppk's routine是最新的(即使通过Chrome和iPhone上传)。
答案 1 :(得分:4)
您或者您是否考虑过使用a reset.css
stylesheet将所有浏览器的默认值设置为零?如果不是,我建议您这样做,因为它可以解决您当前的问题,以及未来的潜在问题。
这可能会有所帮助,因为它会将所有浏览器设置为基线零,因此当您应用填充或定位时,它应该在所有浏览器中具有相同的效果。
答案 2 :(得分:2)
它们的渲染方式有何不同?有没有办法可以使用capability detection而不是浏览器嗅探?当新的浏览器出现时,它不太容易破损,并且更容忍边缘。
答案 3 :(得分:1)
您可以使用jQuery.browser
对象。它在jQ 1.3中被弃用而不是jQuery.support
,但是没有立即计划完全删除它,所以你应该是安全的。
也就是说,使用浏览器嗅探虽然非常容易和诱人,但通常不是最好的做事方式。由于您觉得某些浏览器在使用CSS方面存在问题,因此您可能需要查看jQuery.support.boxModel
。
答案 4 :(得分:0)
它们都以不同的方式呈现工具提示的最高css值。
var container = $('<div id="personPopupContainer">'
+ '<div id="personPopupContent">'
+ '</div>'
+ '</div>');
var pos = $(this).offset();
var width = $(this).width();
var reposition = { left: (pos.left - width) + 'px', top: pos.top + msg + 'px' };
container.css({
top: reposition.top
});