【问题标题】:touchend and target _blank not cooperatingtouchend 和 target _blank 不合作
【发布时间】:2014-09-29 23:25:22
【问题描述】:

因为我同时具有图像和链接悬停状态,所以我使用了一段通用代码来确保您无需点击两次即可在 iOS 上打开链接。向下查看使用的代码。

但是,我注意到现在使用带有 target="_blank" 的链接时,它会在父窗口和新窗口中打开。我怎样才能防止这种情况发生?当然,我希望父标签保留在当前网站上。

此外,我还注意到 javascript 似乎在敏感方面进行了一点点击,即有时它已经在下一页上打开了一个链接,只需点击一下。这是正常的吗?有解决办法吗?

  $('a').on('click touchend', function(e) {
    var el = $(this);
    var link = el.attr('href');
    window.location = link;
	
});

【问题讨论】:

    标签: javascript jquery html ios


    【解决方案1】:

    你可以使用 e.preventDefault();取消本机行为,然后使用 window.open(link, target);在适当的目标中打开链接:

    $('a').on('click touchend', function(e) {
        e.preventDefault();
        var el = $(this);
        var link = el.attr('href');
        var target = el.attr('target');
        window.open(link, target); 
    
    });
    

    【讨论】:

    • 谢谢!因此,如果我理解正确,它会保留触摸屏设备上的行为,并在鼠标点击设备上取消它?另外,我是否正确理解使用此代码后我可以输入 target="_blank" 还是需要将一些脚本合并到链接中? (对不起,我对 javascript 不是很熟悉)
    • 现在在 iOS 和常规浏览器上的所有链接都在新窗口中打开。我试图只在新窗口中打开具有目标 _blank 属性的那些...
    • 使用 target="_self" 属性在同一标签中打开链接。
    • 科斯蒂亚,非常感谢!它现在就像一个魅力。今天你是我的英雄 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多