2

我一直在为移动设备开发一个网站。但是由于某些原因,AJAX 调用在 Opera Mini 上不起作用。例如 - 在页面末尾加载更多内容的此类请求 (70%)

$(document).scroll(function (e) {
    if (processing) return false;
    if ($(window).scrollTop() >= ($(document).height() - $(window).height()) * 0.7) {
        processing = true;
        $.ajax({
            type: "GET",
            url: "/ajax/popup-loadmore-test.php",
            data: {
                entityid: $("#e").attr("data-id"),
                version: version
            }
        }).done(function (msg) {
            console.log("Data emitted: " + msg);
            $('#f').append(msg);
            version++;
            processing = false;
        });
    }
});

它可以在任何地方工作,在桌面、UC 浏览器、Android 浏览器等上,但不是 Opera Mini。

如果 AJAX 是为 Opera Mini 以不同的方式编写的,请提供帮助。我一直在阅读很多关于 Opera Mini 在浏览器上呈现页面的方式。我的用户群有将近 50% 的歌剧用户,所以这对我来说是个大问题。谢谢。

4

2 回答 2

3

Opera Mini中没有scroll事件。

Opera Mini不支持的 DOM 事件

  • 上下文菜单
  • dblclick
  • 错误
  • 按键
  • 按键
  • 键位
  • 鼠标移动
  • 鼠标进入
  • 鼠标离开
  • 鼠标移出
  • 鼠标滚轮
  • 调整大小
  • 滚动
  • 触摸取消
  • 触摸端
  • 触摸移动
  • 触摸启动

阅读更多Opera Mini 的工作原理

于 2014-12-04T10:28:27.747 回答
0

由于scrollOpera mini 不支持事件,使用按钮加载更多onClick并向该按钮添加事件,opera mini 支持 onClick 事件

<div id="loadmore" onClick="loadmore()">More</div>

function loadmore()
{
   $.ajax({
            type: "GET",
            url: "/ajax/popup-loadmore-test.php",
            data: {
                entityid: $("#e").attr("data-id"),
                version: version
            }
        }).done(function (msg) {
            console.log("Data emitted: " + msg);
            $('#f').append(msg);
            version++;
            processing = false;
        });
}
于 2015-01-03T12:08:24.820 回答