我想对除jquery中的IE之外的所有其他浏览器执行绝对位置。我有以下代码。
<script type="text/javascript">
var positions=$("#gift_field").position();
var top=positions.top;
$("#discount_box").css("float","right");
if (!$.browser.msie){
$("#discount_box").css("position","absolute");
}
$(".discount_box").css("top",positions.top);
var wd=(positions.left) + 400;
$(".discount_box").css("left",wd);
</script>
但这不起作用。
答案 0 :(得分:5)
2件事......
浏览器已弃用 - 建议您改为使用功能检测。
如果您使用严格的doctype,则IE(甚至6)中的绝对定位很好 - 任何修复都可以在条件注释中包含的IE特定样式表中完成。
答案 1 :(得分:3)
您确定在IE的每个过去,现在和未来版本中,您尝试做的是否正确?你想解决什么问题?也许使用像Modernizr这样的东西,在你的CSS中添加一个特殊情况,并且只要IE像其他浏览器一样运行就让它自动停止使用?
如果您完全确定您想要的是检测IE8(或任何其他版本),那么您不需要任何JavaScript来执行此操作 - 您可以使用以下内容:
<!doctype html>
<!--[if lt IE 7 ]> <html lang="en-us" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en-us" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en-us" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en-us" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" >
<meta charset="utf-8">
...
然后像这样使用CSS:
#discount_box { your normal style }
.ie8 #discount_box { additional style for IE8 }
(但请检查discount_box
是否为班级或ID,因为您在示例中同时使用了两者)
请参阅Paul Irish的Conditional stylesheets vs CSS hacks? Answer: Neither!。
答案 2 :(得分:2)
通过jquery检测浏览器版本,请参阅Jquery Browser
答案 3 :(得分:0)
if (typeof $.browser.msie == 'undefined') { ...
答案 4 :(得分:0)
$。在最新版本的jquery中不支持browser.msie你可以添加jquery-migrate-1.2.1.min.js或使用以下jquery函数...对于IE它也会给你版本... < / p>
调用currentBrowser()。浏览器来检测浏览器.........
function currentBrowser() {
$.returnVal = "";
var browserUserAgent = navigator.userAgent;
if (browserUserAgent.indexOf("Firefox") > -1) {
$.returnVal = { browser: "Firefox" };
}
else if (browserUserAgent.indexOf("Chrome") > -1) {
$.returnVal = { browser: "Chrome" };
}
else if (browserUserAgent.indexOf("Safari") > -1) {
$.returnVal = { browser: "Safari" };
}
else if (browserUserAgent.indexOf("MSIE") > -1) {
var splitUserAgent = browserUserAgent.split(";");
for (var val in splitUserAgent) {
if (splitUserAgent[val].match("MSIE")) {
var IEVersion = parseInt(splitUserAgent[val].substr(5, splitUserAgent[val].length));
}
}
$.returnVal = { browser: "IE", version: IEVersion };
}
else if (browserUserAgent.indexOf("Opera") > -1) {
$.returnVal = { browser: "Opera" };
}
else {
$.returnVal =
{ browser: "other" };
}
return $.returnVal;
}