vue中@contextmenu在pc和mac中的区别
项目中有用到右键菜单,故用了@contextmenu,由于本人是用的PC电脑,所以一切正常,
但是有同事用mac测试了一下,问题随之而来,MAC上右键按下就触发了,
PC上面是鼠标抬起才会触发,所以这样就导致了问题的出现,因为我在方法里面再给document上注册了一个鼠标抬起隐藏右键菜单。
所以在PC上一切正常,但是MAC上面右键菜单只要抬起鼠标就隐藏了。
问题找到了
那么怎么解决呢?
目前也没有很好的思路
就先判断是否是MAC电脑,如果是,就把mouseup事件换成click,click的体验没有mouseup好,反正mac是小众用户群体,先不影响使用吧。
if (detectOS() == "Mac") {
$(document).click(function(e) {
destroyedMenuRightClick();
});
} else {
$(document).mouseup(function(e) {
destroyedMenuRightClick();
});
}
function detectOS() {
var sUserAgent = navigator.userAgent;
var isWin =
navigator.platform == "Win32" || navigator.platform == "Windows";
var isMac =
navigator.platform == "Mac68K" ||
navigator.platform == "MacPPC" ||
navigator.platform == "Macintosh" ||
navigator.platform == "MacIntel";
if (isMac) return "Mac";
var isUnix = navigator.platform == "X11" && !isWin && !isMac;
if (isUnix) return "Unix";
var isLinux = String(navigator.platform).indexOf("Linux") > -1;
var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";
if (isLinux) {
if (bIsAndroid) return "Android";
else return "Linux";
}
if (isWin) {
var isWin2K =
sUserAgent.indexOf("Windows NT 5.0") > -1 ||
sUserAgent.indexOf("Windows 2000") > -1;
if (isWin2K) return "Win2000";
var isWinXP =
sUserAgent.indexOf("Windows NT 5.1") > -1 ||
sUserAgent.indexOf("Windows XP") > -1;
if (isWinXP) return "WinXP";
var isWin2003 =
sUserAgent.indexOf("Windows NT 5.2") > -1 ||
sUserAgent.indexOf("Windows 2003") > -1;
if (isWin2003) return "Win2003";
var isWinVista =
sUserAgent.indexOf("Windows NT 6.0") > -1 ||
sUserAgent.indexOf("Windows Vista") > -1;
if (isWinVista) return "WinVista";
var isWin7 =
sUserAgent.indexOf("Windows NT 6.1") > -1 ||
sUserAgent.indexOf("Windows 7") > -1;
if (isWin7) return "Win7";
}
return "other";
}
vue中@contextmenu在pc和mac中的区别的更多相关文章
- 将iPod中的音乐拷贝到Mac中
需求目标 iPod 中有很多音乐是从原来的电脑中同步进去的,新的电脑中没有 iTunes 的音乐库.所有的音乐都在 iPod 中,会不会突然有一天坏掉了,还是备份到电脑中比较安心啊.那么如何把音乐从 ...
- Mac中如何搭建Vue项目并利用VSCode开发
(一)部署Node环境 (1)下载适合Mac环境的Node包,点击进入下载页面 (2)安装Node环境:找到下载好的Node包,这里是node-v12.14.1.pkg,我们双击它,会进入Node.j ...
- Mac中的快捷键
Mac中主要有四个修饰键,分别是Command,Control,Option和Shift,这四个键分别有自己的图案 基本快捷键 Command是Mac里最重要的修饰键,在大多数情况下相当于Window ...
- 在Mac中像Windows一样查看Tomcat控制台信息
在Windows系统中,通过startup.bat启动Tomcat之后会打开一个控制台,输出日志信息,在系统调试过程中,也会随时输入日志或错误信息,对开发很有帮助. 在Mac中,通过startup.s ...
- Mac中安装Vim7.4
Mac上的Vim Mac本身其实是预装了Vim的,但是目前的系统中都是Vim7.3版本的,而最新的Vim已经是7.4版了,因此为了能够使用最新版的vim,必须要对Mac中的vim要么升级,要么重装.在 ...
- 在Mac中保护私密文件,隐藏文件
在个人电脑中我们有些私密文件或者资料是不希望被人发现或者使用.保护私密文件的方式有很多,比如对文件进行加密,隐藏文件,修改文件后缀等.在Mac中我们也可以通过一些简单方式保护私密文件.这里我们简单介绍 ...
- mac中使用brew安装软件,下载太慢怎么办?
mac中使用brew安装软件,下载太慢怎么办? 本文所说的软件是指较大的软件,如果软件较小,例如软件只有几M,那么使用此方法后,提升会非常小. 了解brew原理: 1: 从网络下载安装包 2: 执行一 ...
- 【转】Mac系统中安装homebrew(类似redhat|Centos中的yum;类似Ubuntu中的apt-get)
Homebrew,Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get.yum神器 Homebr ...
- 苹果MAC中安装并搭建Android开发环境的详细步骤
Android的开发平台搭建主要需要的工具有:Java虚拟机JDK.Eclipse.Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安 ...
随机推荐
- HTML之body标签中的相关标签
一 字体标签 字体标签包含:h1~h6.<font>.<u>.<b>.<strong><em>.<sup>.<sub& ...
- SAP MM 启用批次管理的物料MB21创建预留单据时批次号可以为空!
SAP MM 启用批次管理的物料MB21创建预留单据时批次号可以为空! 如下预留, 批次号字段为空. 实际上该物料是有激活batch management的, For MB21, it is just ...
- 解决Android Studio编译后安装apk报错:Error while Installing APK
刚开始玩 Android ,用Android studio 连接真机做测试,在虚拟机上没有问题,但是真机就会报错 检查了好多地方,最终发现了问题,网上的常规就不介绍了,大家自己去看别的帖子 手机方面 ...
- QT解析和组装json
json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单 1.什么是json? A:json就是个<key,value>字符串 ①一个json对象 {&qu ...
- 通过Erlang构建TCP服务应用案例(最原始方式)
文章来源:公众号-智能化IT系统. 案例介绍 本文介绍的案例是TCP网络服务器的构建,用最原始的方式(非OTP).其功能很简单,通过网络TCP接口接收数据,按照指定的格式解析,并把数据存储至Mongo ...
- macos 安装sublime text 3,如何安装插件
1. 上面的代码如下: import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1 ...
- Python二次编码、小数据池之心照神交
二次编码.解码.小数据池: encode(str:编码):参数编码方式,返回字节码. str_1 = "编码" str_2 = str_1.encode("utf-8&q ...
- 【原】Java学习笔记024 - 包装类
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 之前对于基本数据类 ...
- Boosting Static Representation Robustness for Binary Clone Search against Code Obfuscation and Compiler Optimization(二)
接着上篇Asm2Vec神经网络模型流程继续,接下来探讨具体过程和细节. 一.为汇编函数建模 二.训练,评估 先来看第一部分为汇编函数建模,这个过程是将存储库中的每一个汇编函数建模为多个序列.由于 ...
- .NET CORE学习笔记系列(2)——依赖注入【1】控制反转IOC
原文:https://www.cnblogs.com/artech/p/net-core-di-01.html 一.流程控制的反转 IoC的全名Inverse of Control,翻译成中文就是“控 ...