【发布时间】:2014-04-09 07:18:30
【问题描述】:
Chrome 正在使用以下代码锁定。在几次调整大小事件甚至 1 次之后,Chrome 将进入无限旋转并停止登录到控制台。有时我不得不终止 Chrome 进程。我无法在 FF 或 IE 中重现它。我也无法重现 similar code 翻转 div 背景颜色而不是样式表的问题。
这三个样式表只是改变了background-color
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link id="size-stylesheet" rel="stylesheet" href="/Content/wide.css" />
<script src="https://code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body>
<h1>This page is Responsive!</h1>
<script type="text/javascript">
function adjustStyle(width) {
console.log('adjusting style...');
width = parseInt(width);
if (width < 1283) {
$("#size-stylesheet").attr("href", "/Content/narrow.css");
} else if ((width >= 1283) && (width < 1419)) {
$("#size-stylesheet").attr("href", "/Content/medium.css");
} else {
$("#size-stylesheet").attr("href", "/Content/wide.css");
}
}
$(function () {
adjustStyle($(this).width());
$(window).resize(function () {
console.log('resize fired...');
adjustStyle($(this).width());
});
});
</script>
</body>
</html>
注意,我需要支持非 HTML5 浏览器,例如 IE8 和 IE7。所以任何解决方案都需要考虑到这一点。
【问题讨论】:
-
为什么不简单地使用 CSS 媒体查询而不是 JavaScript?
-
媒体查询不支持旧版浏览器(IE8 及以下)。我必须确保这些浏览器也能正常工作。
-
可以从响应式网站中受益的手机有多少运行 IE 8 或更早版本?
-
(换句话说,IE中的“工作”并不总是意味着与其他浏览器“工作相同”。给IE用户不同的体验通常是可以的)
-
您也可以导入 html5 脚本并仍然使用媒体查询?
标签: javascript jquery css google-chrome