如果在 Chrome 中点击链接,加载微调器将保持打开状态
Loading spinner stays on if middle click link in Chrome
我有一个页面使用spin.js(http://fgnass.github.io/spin.js/#!)纯Javascript微调器在单击链接(指向慢速页面)时显示微调器。我使用链接上的点击触发它。
问题出在 Chrome (v 30.0.1599.69 m) 中,如果我中键单击链接以在新选项卡中打开慢速页面,那么当我返回原始页面时,微调器正在运行并永远运行。它不会发生在IE或Firefox中。
(显然,如果我左键单击链接,旋转器将在加载新页面时死亡。
我的链接如下所示: <a href="other-sources.php?id='.$id.'" onClick="return spinner(40);">Other Sources</a>
启动微调器的脚本如下所示:
<script type="text/javascript">
// Display spinner while waiting for Other Sources to display.
// Parameter is vertical position of spinner, since we have 2 Show Source links
function spinner(posn) {
var opts = {
lines: 15, // The number of lines to draw
length: 7, // The length of each line
width: 4, // The line thickness
radius: 15, // The radius of the inner circle
corners: 1, // Corner roundness (0..1)
rotate: 0, // The rotation offset
color: '#000', // #rgb or #rrggbb
speed: 1, // Rounds per second
trail: 60, // Afterglow percentage
shadow: false, // Whether to render a shadow
hwaccel: false, // Whether to use hardware acceleration
className: 'spinner', // The CSS class to assign to the spinner
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: posn, // Top position relative to parent in px
left: 850 // Left position relative to parent in px
};
var target = document.getElementById('main');
var spinner = new Spinner(opts).spin(target);
return true;
}
</script>
为了完成图片,我在"头部"部分中有这个:
<script src="spin.min.js"></script>
我可以在 javascript 中放入一些东西来让它忽略中间按钮点击吗?我在其他地方读到,检测按钮相当古怪。
嗯。我看到有一个关于它的错误报告可以追溯到 2008 年:https://code.google.com/p/chromium/issues/detail?id=1687
好的,我按如下方式解决了问题:
-
将链接从单击更改为鼠标向上
-
在 javascript 的开头添加了以下代码:
if (event.which == null) /* IE case */ var button= (event.button < 2) ? "LEFT" : ((event.button == 4) ? "MIDDLE" : "RIGHT"); else /* All others */ var button= (event.which < 2) ? "LEFT" : ((event.which == 2) ? "MIDDLE" : "RIGHT"); if (button != "LEFT") return true;
相关文章:
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- 如何在浏览器重新加载时保存位置哈希状态
- 如何加载嵌套3个状态的UI路由器UI视图模板
- ui路由器的惰性加载状态
- angularjs-ui路由器父状态,参数加载在子状态之后
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- 当移动设备从睡眠状态唤醒时重新加载网页
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 在加载状态之前,我需要在angular js中为每个状态添加角色
- 带有jquery.min.map的Ruby on Rails:未能加载资源状态406
- 在angular js中,每次应用程序进入状态时,重新加载状态的最佳方式是什么
- jQuery识别页面加载上的单选按钮的不正确状态,当单选值=“0”时;否”;并且两个无线电都没有被选择
- AngularJS-在子状态中加载命名视图(非抽象)
- 表现出承诺'加载状态
- 在表重新加载后,使用setInterval保持表的显示-隐藏状态
- 维护手动页面刷新时通过AJAX加载的状态/内容
- css类在页面重新加载后处于活动状态
- 在UI-Router的嵌套路由中,子状态加载父状态templateUrl
- 如何查找系统's音频驱动状态加载html5页面
- 如何重置 JavaScript 以状态加载