所有分类
  • 所有分类
  • 后端开发
HTML5 WebAPP 页面复制功能的实现与兼容性问题

HTML5 WebAPP 页面复制功能的实现与兼容性问题

这次给大家带来移动端实现选中实现高亮全选文本事件,移动端实现选中实现高亮全选文本事件的注意事项有哪些,下面就是实战案例,一起来看一下。

咱们搞个移动端的高亮全选文字功能,就是为了让大家能轻松复制文本。这样一来,不管是在网上冲浪还是聊天打字,都能省心不少!比如说,有时候你想把网页上的一段话搜一下或者转发给朋友,没有这个功能就得干瞪眼了。

这个功能的难点就是吃透各种浏览器和操作系统之间的差异性。举个例子,也许你发现有些浏览器,长按文字照样可以“复制链接”,而不是“复制文本”,这时候就得工程师想办法让这个功能适应最多种类的情况了。

使用a标签的局限性

虽然有的手机用UC或者是百度浏览器就能通过带href属性的a标签实现“自由复制”或者“选择文本”功能,但是在某些安卓手机自带的浏览器和iPhone里,这个方法就只能当作普通链接来处理了,只会出现“复制链接”的提示,而没有“复制文本”的选项。

不仅如此,这个办法用在iPhone的Safari浏览器里还不行!就算有window.getSelection可以用,但其实操作完之后还是选不中默认的文字。这就说明,只靠特定HTML标签的方法有时候并不好用。

利用selection和range方法的挑战

实际上,尽管通过selection和range的方式来控制文字选取挺好的,但要注意在实践中,不同浏览器之间可能会有兼容性的问题!拿iPhone的Safari来说,这个方法选字就没那么稳妥。

这个不一样,使得开发者要做很多测试和调来保证脸儿对脸儿都行得通。这样一来,开发者就得多花点心思,开始操心了。

function selectText(element) {  
  var doc = document,  
      text = docgetElementById(element),  
      range,  
      selection;  
  
  if (docbodycreateTextRange) {  
      range = documentbodycreateTextRange();  
      rangemoveToElementText(text);  
      rangeselect();  
  } else if (windowgetSelection) {  
      selection = windowgetSelection();          
      range = documentcreateRange();  
      rangeselectNodeContents(text);  
      selectionremoveAllRanges();  
      selectionaddRange(range);  
      /*if(selectionsetBaseAndExtent){ 
          selectionsetBaseAndExtent(text, 0, text, 1); 
      }*/  
  }else{  
      alert("none");  
  }  
}

利用CSS和jQuery的解决方案

面对这些麻烦,个好办法就是用CSS和jQuery来实现长按复制功能!比如,你可以通过调节CSS的margin属性来改变字体大小,再用jQuerymobile里的taphold事件来模拟长按效果。

这个办法好就好在啥都能用,无论是手机还是电脑,各种各样的浏览器也都能搞定。比如说我们常用的安卓和iOS系统里的自带浏览器,还有UC浏览器、百度浏览器什么的。有了它们,才能真正解决全选高亮文字的难题。

实现细节与注意事项

要弄好这个,有点小技巧的哦~比如,为了在Safari上有个长按全选的功能,把外边距设成2em就行了;当然,为了保持画面的美感,父容器的外边距可以用负值抵消掉这个顶上去的距离。

别忘了要优化代码,让它跑得更快更稳!可以试试少搞些没意义的DOM操作,把事件处理也捋顺溜光。

HTML5 WebAPP 页面复制功能的实现与兼容性问题

测试与优化

搞定了功能之后,别忘了多做点测试!这就是看看这个功能在各种设备、浏览器上能用不,稳不稳定;还有用户用着顺不顺畅。这样就能发现和消除可能出现的毛病,让你们用得更开心。

看,优化得不停歇!因为浏览器和设备更新换代,代码可得适时调整、优化,才能适应新的大环境~所以,开发者们得多关注新技术、新潮流,提升自个儿的本领才行。

用户反馈与持续改进

       

           1、必须首次下载才生效
           2、不能从排行榜下载哦       

       

           

三国艳义手机优化大师

                               

           长按虚线框,拷贝关键词       

       去AppStore搜索下载  

参考用户意见改版功能很关键!根据他们反馈,才能了解到真实用起来怎么样,有哪些需求和不满意的地方。这样能方便咱们更明白他们,然后有的放矢地改正不足。

做下去不只有修老问题这么简单,还要加功能进一步满足用户追求新鲜感的需求!这可是个让开发人员天天操心的动态过程。

   
  
$("#kwd")bind("taphold", function(){ //不支持iPhone/iTouch/iPad Safari  
    var doc = document,   
        text = docgetElementById("kwd"),  
        range,   
        selection;  
    if (docbodycreateTextRange) {  
        range = documentbodycreateTextRange();  
        rangemoveToElementText(text);  
        rangeselect();  
    } else if (windowgetSelection) {  
        selection = windowgetSelection();          
        range = documentcreateRange();  
        rangeselectNodeContents(text);  
        selectionremoveAllRanges();  
        selectionaddRange(range);   
    }else{  
        alert("浏览器不支持长按复制功能");  
    }         
});  
  

总结与展望

说白了,搞定手机里的文字全选功能可不是小菜一碟,需要懂得各种编程技术和方法。比如用HTML、CSS、JavaScript还有jQuery这些东西,就能解决兼容性和操作性的难题,让你用得更舒心。

未来,科技越来越牛,用户们也变得挑剔,这个行业还有好多地方可以进步!咱们这些开发者们得一直保持学习和创新,技术得时时刻刻提高,才能跟上这个瞬息万变的时代。

cparea{  
    text-align: center;  
    font-family: Microsoft Yahei;  
    margin: -2em 0 0;  
}  
kwd{  
    display: inline-block;  
    color: #272727;  
    background-color: #fff;  
    font-size: 1875em;  
    font-size: 1875em;  
    padding: 75em 1em;  
    border: 1px dashed #e60012;  
    -webkit-user-select:element;   
    margin: 2em;  
}  
kwd span{  
    display: block;   
    border: 1px solid #fff;  
}  
kdes{  
    display: inline-block;  
    color: #212121;  
    font-size: 875em;  
    padding-top: 0;  
}  
kdes b{  
    color: #ed5353;  
    font-size: 25em;  
    padding-right: 1em;  
}

读者互动

大家在做移动端开发时,有没有碰到过批量选中文本的情况?你们都是怎么搞定的呀?快来分享下你们的小技巧,大家一起来互相学习。

原文链接:https://www.icz.com/technicalinformation/web/2024/06/18483.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?