首页 > 代码库 > 360浏览器兼容模式 不能$.post (不是a 连接 onclick的问题!!)

360浏览器兼容模式 不能$.post (不是a 连接 onclick的问题!!)

 

最近发现一个360浏览器很蛋疼的事情,在兼容模式下

代码:

<a href="http://www.mamicode.com/#" onclick=‘doAudit(1)‘>审核</a>

点击没有任何效果,试了所有浏览器都不会

于是以为是兼容模式会变成IE6

于是改成各种写法

 <a href="javascript:void(0)" onclick=‘doAudit(1); return false;‘>审核</a>

等等 发现没有任何作用

后来慢慢静下心,一段段注释掉发现,靠,原来是加了$.post后 a 就没反应了

后来查资料发现有人回答

360会缓存ajax返回值,给url加个时间戳再试试

于是

 

原来代码如下

<a href="http://www.mamicode.com/#" onclick=doAudit(1)‘>审核</a>

<script>

function doAudit( id) {
            //审核
            if (type == 1) {
                $.post("/ajaxapp/commonajaxquery.ashx", { a: "Audit", id: id}, function (data, textStatus) {
                    if (data != null) {
                        
                    }
                    else
                        alert("数据有误,请联系管理员");
 });
 </script>
在兼容模式下,点击连接,没有任何反映,在上方加alert() 来调试 也没有任何反映

在后面加了一个随机的时间戳(ts)

 $.post("/ajaxapp/commonajaxquery.ashx", { a: "Audit", id: id, ts: Math.random() }

马上就可以了

看不懂的同学,可以这样写

 $.post("/ajaxapp/commonajaxquery.ashx?ts=" + Math.random(), { a: "Audit", id: id }

 

用了2个小时,终于完美解决

 

360浏览器兼容模式 不能$.post (不是a 连接 onclick的问题!!)