我有一个malsup的真棒jQuery循环运行的页面.我使用的是最新版本(2.99)和Safari 5.0.5.我以前没有遇到过以下问题,看起来有点奇怪.
问题
有时,当页面加载时,.slides元素只有654像素宽.我把它设置为css文件中的960px.但是,当我使用JavaScript来获取.slides元素的宽度时,它表示宽度为1271px.咦?这个问题偶尔会出现在Firefox(3.6.16)上,但没有Safari那么近.奇怪的是,我似乎无法在IE8中复制此错误.
我的代码都是W3C有效(除了3次调用border-radius).使用表单元素作为循环容器可能存在限制吗?Safari是否存在误操作?
JS:
$(document).ready(function(){
var sw = $('.slides').width();
$('.slides').cycle({
fx: 'scrollHorz',
nowrap: 0,
fit: 1,
timeout: 0,
next: '.next',
prev: '.prev',
speed: 250
});
if (sw != 960){
$('.slides').css('width','960px');//to set the width to 960, so it doesn't clip the form
$('.slides').css('background-color','#ff00ff');//so i know when the problem is occuring
}
});
Run Code Online (Sandbox Code Playgroud)
CSS:
#content{
float:left;
width:100%;
}
.wrapme{
width:960px;
height:auto;
margin:0 auto;
}
.slides{
float:left;
width:960px;
height:auto;
overflow:auto;
}
Run Code Online (Sandbox Code Playgroud)
你可以(希望)在这里看到"bug" .我很想知道其他人是否没有这样做(可能需要多次推F5).
我很想解决这个烦人的小虫子.在循环之后设置容器宽度的解决方法已经调整它(错误的宽度,毫无疑问)只能解决问题的一半.移动到下一张幻灯片后,它会将宽度减半.下一张幻灯片,它再次将它减半.因此,在幻灯片3之后,它将所有内容调整到240px宽.
我想解决这个问题的方法是强制每个人都使用Firefox/IE(它将驻留在公司内部网上). …
问题
用$(window).bind("beforeunload", ...[snip]问,如果一个用户希望离开页面产生在一些浏览器的一些奇怪的结果.弹出对话框,询问您是希望留在页面上还是离开页面.如果您点击页面上的停留选项,Google Chrome(最新版本 - 13.0.782.215米)和WinIE7会弹出"后退"按钮中的最后一个历史记录页面.
为了说明这一点,当前会话历史记录包括访问以下页面:
你决定离开第3页,beforeunload事件就会发生.您选择留在当前页面上.
您再次单击后退按钮,这次决定离开页面.你应该发现自己处于第2页,而不是你在第1页.你可以再次前进到第2页.
这个问题
当我们选择"保持当前页面"选项时,如何阻止浏览器从后退按钮中删除这些页面?可能吗?
问题的例子
使用谷歌浏览器,在新窗口中,前往http://stackoverflow.com并浏览几个问题,而无需返回.然后点击Ask Question按钮.开始在对话框中输入内容.在浏览器中按返回.选择留在页面上.再次按回浏览器,这次选择"离开页面"选项.你现在已经回到了历史的两页.如果您多次点击停留在页面上,您基本上可以返回多个页面.
为什么这很重要?!
我不想混淆我的用户.他们不是精通计算机的类型.
我的代码(不是相关的)
$(window).bind("beforeunload", function(){
if (in_edit > 0){
return "You are currently editing this job.\n\nAre you sure you wish to exit the page?";
}
});
Run Code Online (Sandbox Code Playgroud)