为了账号安全,请及时绑定邮箱和手机立即绑定

手机浏览器jquery报错

手机浏览器jquery报错

PHP
交互式爱情 2019-03-18 09:30:25
已经解决 我使用了let,作为EC6新特性,移动端兼容较差。更换为var解决。 2017年8月22日 09:47 更新: 1.有朋友指出<script></script>没写在<body></body>中,一开始我是写在里边的,做了各种尝试没有解决,emmmm,破罐子破摔给放外边了,现在放回里边还是这样2.用$(function(){});or$(document).ready(function(){});加载还是这样。3.和ajax没关系,我加载jQuery的情况下<script>alert(1);</script>也依然不会弹出个1。目前已经做过测试如下: 机型--------------firefox----------Chrome---------QQ浏览器-------------自带浏览器-----微信华为荣耀9---------1-------------------0--------------0-----------------------------0-------------1小米Mi 6-----------x-------------------1--------------0-----------------------------1-------------1iPone 7 Plus------x-------------------1--------------1-----------------------------1-------------1 以上:x => 未测试,1 => 正常,0 => 不正常。 ---------------------------------------原问题------------------------------------------------ 1.最近写了一个upload小页面,没想到PC端完美运行,控制台无任何warning and notice的情况下,用手机浏览器打开js代码无效。2.一开始认为是手机的锅,下载了一个QQ浏览器,依然无效,在微信浏览器中倒是很正常。加载jQuery的情况下,连一句alert(1);都无任何反应。3.代码如下 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="height=device-height, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> <title>文件上传</title> <script src="/jquery.min.js"></script> <style type="text/css" media="screen"> @media all and (orientation : landscape) { .file,#btn,.fileerrorTip,.showFileName{ width: 30vw; margin: 10vh auto; outline: none; } } @media all and (orientation : portrait){ .file,#btn,.fileerrorTip,.showFileName{ outline: none; width: 80vw; margin: 3vh auto; } } .file { position: relative; display: block; cursor: pointer; background: #D0EEFF; border: 1px solid #99D3F5; border-radius: 4px; padding: 4px 12px; overflow: hidden; color: #1E88C7; text-decoration: none; text-indent: 0; text-align: center; line-height: 20px; } #btn{ display: block; cursor: pointer; padding: 4px 12px; line-height: 20px; text-indent: 0; text-align: center; border: 1px solid #99D3F5; border-radius: 4px; background: #D0EEFF; color: #1E88C7; } .file input { position: absolute; cursor: pointer; /*font-size: 100px;*/ right: 0; top: 0; opacity: 0; } .fileerrorTip,.showFileName{ display: none; /*position: relative;*/ /*display: block;*/ background: #D0EEFF; border: 1px solid #99D3F5; border-radius: 4px; padding: 4px 12px; overflow: hidden; color: #1E88C7; text-decoration: none; text-indent: 0; line-height: 20px; } .file,#btn,.fileerrorTip,.showFileName:hover { cursor: pointer; background: #AADFFD; border-color: #78C3F3; color: #004974; text-decoration: none; } </style> </head> <body> <form method="post" enctype="multipart/form-data" name="myForm"> <input type="hidden" name="MAX_FILE_SIZE" value="300000000" /> <a href="javascript:;" class="file"> 选择文件 <input type="file" name="file" value=""/> </a> <div class="fileerrorTip"> </div> <div class="showFileName"></div> <div id="btn" >点击上传</div> </form> <script> $(document).ready(function(){ alert(1); $("#btn").hide(); $('#btn').click(function () { var file = document.myForm.file.files[0]; var fm = new FormData(); fm.append('file', file); $.ajax( { url: 'upload.php', type: 'POST', data: fm, contentType: false, //禁止设置请求类型 processData: false, //禁止jquery对DAta数据的处理,默认会处理 //禁止的原因是,FormData已经帮我们做了处理 success: function (result) { result?alert("上传成功"):alert("失败"); window.location.reload(); } } ); }); $("input[name='file']").change(function(){ let filePath=$(this).val(); let k = filePath.substr(filePath.indexOf(".")).replace(/\W/g,""); $.ajax({ url: 'upload.php', type: 'GET', data: {type:k}, success: function (result) { if(result) { $("#btn").show(); let arr=filePath.split('\\'); let fileName=arr[arr.length-1]; $(".showFileName").html("文件名:"+fileName); $(".showFileName").show(); }else{ $(".showFileName").hide(); $(".fileerrorTip").html("您未上传文件,或者您上传文件类型有误!").show(); } } }); }); }); </script> </body> </html> 4.
查看完整描述

6 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

问题找到,我使用了let,作为EC6的新特性,很多浏览器不兼容。

查看完整回答
反对 回复 2019-03-18
?
holdtom

TA贡献1805条经验 获得超10个赞

你的<script>写在</body>外了。

查看完整回答
反对 回复 2019-03-18
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

手机提交AJAX相当于跨域

查看完整回答
反对 回复 2019-03-18
?
炎炎设计

TA贡献1808条经验 获得超4个赞

<script></script>标签放在<body><body/>中间就可以了。

查看完整回答
反对 回复 2019-03-18
?
RISEBY

TA贡献1856条经验 获得超5个赞

改一下

  $(document).ready(function(){
      //jquery 执行方法操作
    });
    or:
   $(function(){
       //jquery 执行方法操作
    })

看看你引入jquery上面的那个js,删掉试试

查看完整回答
反对 回复 2019-03-18
?
jeck猫

TA贡献1909条经验 获得超7个赞

能说一下是Ios还是Android吗?

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 514 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信