如何使用javascript检测智能手机和平板电脑的onclick事件?

时间:2016-01-01 07:26:18

标签: javascript android ios touchscreen

如何使用onclick检测javascript事件仅限智能手机和平板电脑?

https://jsfiddle.net/d87zjbLp/3/

我使用此代码,但我只想在智能手机和平板电脑上调用功能myFunction()(不在PC和笔记本电脑上)

我该怎么做?

<script>
function myFunction() {
    alert("test");
}
</script>

2 个答案:

答案 0 :(得分:1)

https://jsfiddle.net/0ozss4q4/1/

首先检查手机或平板电脑

function isMobileOrTablet() {
 if (navigator.userAgent.match(/Android/i)
  || navigator.userAgent.match(/webOS/i)
  || navigator.userAgent.match(/iPhone/i)
  || navigator.userAgent.match(/iPad/i)
  || navigator.userAgent.match(/iPod/i)
  || navigator.userAgent.match(/BlackBerry/i)
  || navigator.userAgent.match(/Windows Phone/i)
 ) {
  return true;
 }else {
  return false;
 }
}

然后创建一个仅在移动设备或平板电脑上运行的主要功能

function onlyMobileAndTablet(callback) {
 if(isMobileOrTablet()) {
  return callback && callback()
 }
}

然后只需将此功能调用到您想要的地方

onlyMobileAndTablet(function() {
 console.log('only mobile or tablet');
});

或者你可以这样做。

function isMobileOrTablet(callback) {
     if (navigator.userAgent.match(/Android/i)
      || navigator.userAgent.match(/webOS/i)
      || navigator.userAgent.match(/iPhone/i)
      || navigator.userAgent.match(/iPad/i)
      || navigator.userAgent.match(/iPod/i)
      || navigator.userAgent.match(/BlackBerry/i)
      || navigator.userAgent.match(/Windows Phone/i)
     ) {
      return callback && callback(true);
     }else {
      return callback && callback(false);
     }
    }

然后调用该函数并检查返回值

isMobileOrTablet(function(res) {
 if (res) {
  // This is mobile/tablet
 } else {
  // this is not a mobile/tablet
 }
});

答案 1 :(得分:0)

你应该只使用&#34; on touchstart&#34;属性。

也许你的遗嘱会有更好的事件,比如touchend,或者也许是touchenter;

http://www.javascriptkit.com/javatutors/touchevents.shtml