当您将Click事件绑定到Mobile Safari中的任何元素时,复制并禁止粘贴,是否有人知道解决方法!?
<span onclick="void(0);">This text cannot be cut or copied and a -webkit-tap-highlight-color style is automatically applied.</span>
这对我来说似乎是一个巨大的错误,特别是如果你从父元素(如身体)委派事件......
有关此问题的演示,请尝试在此演示中使用移动版Safari(iPhone或iPad)复制文字:http://jsbin.com/ikileb/1/
注意:如果您从主体委托事件,但是如果它是从DOM中的任何其他元素委派的,则应用-webkit-tap-highlight-color
并在整个元素中阻止复制和粘贴,这似乎没问题。
答案 0 :(得分:0)
不,唯一的方法是改变你的用户体验行为,比如添加一个可点击的按钮。你可以查看G +移动版。
答案 1 :(得分:0)
我有同样的问题,这个解决方案需要一些jQuery。
我提供的示例是使用传统键盘/鼠标的更复杂的示例。但对于触摸设备,只需按照左键单击部分即可。
不是100%确定Safari的细节,但这通常适用于所有现代浏览器。
以下是我要访问的链接表:
<table>
<tr class="row"><td>http://google.com</td></tr>
<tr class="row"><td>http://teslamotors.com</td></tr>
<tr class="row"><td>http://solarcity.com</td></tr>
</table>
这是使用当前版本的jQuery来处理mousedown
和mouseup
绑定的脚本:
<script>
$(document).ready(function() {
var lastMouseDownEvent = null;
// capture your last "mousedown" event and store it
$(".row").mousedown(function(event) {
console.log(event); // lets see the data in your Developer Mode log
lastMouseDownEvent = event;
});
// catch the "mouseup" event and compare the distance from "mousedown"
$(".row").mousedown(function(event) {
console.log(event);
var href = $(this).find("td").html();
switch(event.which) {
case 1: // left click
// only process left click if mousedown and mouseup occur at the same location on screen.
// NOTE: for my mom's shaky hand I added the 5 pixel allowance.
if (Math.abs(event.clientX-lastMouseDownEvent.clientX) < 5 &&
Math.abs(event.clientY-lastMouseDownEvent.clientY < 5))
window.location.href = href;
break;
case 2: // right click
window.open(href);
break;
}
lastMouseDownEvent = null;
});
});
</script>