Javascript 如果在Chrome中单击鼠标中键链接,加载微调器将保持打开状态

Javascript 如果在Chrome中单击鼠标中键链接,加载微调器将保持打开状态,javascript,php,spinner,Javascript,Php,Spinner,我有一个页面,它使用spin.js(!)纯Javascript微调器在单击链接(指向慢速页面)时显示微调器。我使用链接上的onclick触发它 问题是在Chrome(V30.0.1599.69 m)中,如果我用鼠标中键单击链接,在新选项卡中打开慢速页面,那么当我返回到原始页面时,微调器将一直运行。IE或Firefox中不会出现这种情况 (显然,如果我左键单击链接,当加载新页面时,微调器将消失。) 我的链接如下所示: 启动微调器的脚本如下所示: <script type="text/ja

我有一个页面,它使用spin.js(!)纯Javascript微调器在单击链接(指向慢速页面)时显示微调器。我使用链接上的onclick触发它

问题是在Chrome(V30.0.1599.69 m)中,如果我用鼠标中键单击链接,在新选项卡中打开慢速页面,那么当我返回到原始页面时,微调器将一直运行。IE或Firefox中不会出现这种情况

(显然,如果我左键单击链接,当加载新页面时,微调器将消失。)

我的链接如下所示:

启动微调器的脚本如下所示:

 <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>

//在等待其他源显示时显示微调器。
//参数是微调器的垂直位置,因为我们有两个显示源链接
函数微调器(posn){
变量选项={
lines:15,//要绘制的行数
长度:7,//每行的长度
宽度:4,//线条粗细
半径:15,//内圈的半径
拐角:1,//拐角圆度(0..1)
旋转:0,//旋转偏移量
颜色:'#000'、//#rgb或#rrggbb
速度:1,每秒//圈
轨迹:60,//余辉百分比
shadow:false,//是否渲染阴影
hwaccel:false,//是否使用硬件加速
className:'微调器',//要分配给微调器的CSS类
zIndex:2e9,//z索引(默认为2000000000)
top:posn,//在px中相对于父对象的top位置
左:850//在px中相对于父对象的左位置
};
var target=document.getElementById('main');
var微调器=新微调器(opts)。微调(目标);
返回true;
}
为了完成这张图片,我在标题部分有以下内容:

<script src="spin.min.js"></script>

我是否可以在javascript中添加一些东西,使其忽略中间按钮的点击?我在别处读到,检测按钮是相当奇怪的


嗯,我看到有一个关于它的错误报告可以追溯到2008年:

好的,我解决了这个问题如下:

  • 将链接从onClick更改为onmouseup

  • 在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;
    
    if(event.which==null)
    /*IE案例*/
    var按钮=(event.button<2)?“左”:
    ((event.button==4)?“中间”:“右”);
    其他的
    /*所有其他*/
    var按钮=(event.which<2)?“左”:
    ((event.which==2)?“中间”:“右边”);
    如果(按钮!=“左”)
    返回true;
    

  • 您应该添加解决方案作为问题的答案并接受它。这将为未来的游客做一些事情;希望回答问题的人会看到问题立即得到了回答,具有相同问题的人可以跳转到接受的答案并阅读它,而无需阅读大量的问题文本。