更改链接的URL,具体取决于它们是否在移动设备上 [英] Change URL of a link depending on whether or not they are on mobile

查看:45
本文介绍了更改链接的URL,具体取决于它们是否在移动设备上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个为移动和桌面用户显示的按钮,当前设置为tel:123-456-7890.这非常适合移动用户,但我希望桌面用户转至锚定链接#contact

I have a button that shows for mobile and desktop users, currently its set as tel:123-456-7890. This works great for mobile users, but I want Desktop users to instead go to an anchor link #contact

我会提到我无法更改按钮的类名,但可以设置ID.

I'll mention that I can't change the class name of the button but I can set an ID.

如果用户未设置JavaScript,我想将默认值更改为#contact锚标签.然后,如果确定为可移动,则将URL更改为tel:else锚标记.

I'd like to change the default to #contact anchor tag, in case users don't have javascript set. Then if determined to be mobile, change URL to tel: else anchor tag.

推荐答案

可以通过多种方式解决此问题.使用javascript,一个大概的想法是:我建议阅读这篇文章-> detecting-a-mobile-browser

THis problem can be solved in multiple ways. With javascript, a rough idea would be : I recommend reading this post -> detecting-a-mobile-browser

考虑到这一点,您可以仅使用该功能来检测用户是否为移动用户并更新链接

With this in mind, you can just use that function in order to detect whether the user is a mobile one or not and update the link

window.isMobile = function() {
  var check = false;
  (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
  return check;
};



if (isMobile()){
    document.getElementById("YOUR_BUTTON_ID").setAttribute("href","your mobile link");
   // Or use jquery like $("#YOUR_BUTTON_ID").attr("href,"your mobile link")
}

但是,如果您要使用js方法,我建议您做一些更通用的事情.例如,您可以通过自定义属性直接将移动href存储在按钮上,如果在移动设备上,则可以使用它替换实际的href值.这样,您将避免重复代码和逻辑

However, if you are to go with the js approach, I'd recommend doing something more generic. For example, you can store the mobile href on the button directly via a custom attribute , and just use that to replace the actual href value if on mobile. In this way, you would avoid duplicating code and logic

这篇关于更改链接的URL,具体取决于它们是否在移动设备上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆