【问题标题】:Why does safari reload the page when I swipe back on iOS?为什么当我在 iOS 上滑动时,Safari 会重新加载页面?
【发布时间】:2019-03-14 08:16:01
【问题描述】:

我正在使用 Django 构建网页。当我想在 safari iOS 上测试项目时,我尝试使用向后滑动或后退按钮,但它没有执行正确的操作,而是重新加载同一页面。

我已经在另一个网页中测试了相同的滑动,它可以正常工作。

有谁知道它为什么会发生以及如何纠正它?

【问题讨论】:

    标签: ios django safari user-experience


    【解决方案1】:

    听起来 Django 可能在您的网页上有一些调用 reload() 函数的 javascript。如果在桌面浏览器上发生相同的行为,您可以轻松检查(在 Chrome 中:右键单击 > 检查)网页的源代码并查找重新加载页面的 javascript 函数。也许重新加载是您可以在您的站点上禁用的 Django 插件的一部分。

    【讨论】:

    • 在桌面和 android 中完美运行,这种奇怪的行为只发生在 safari ios 中。
    【解决方案2】:

    我知道为什么会发生这个错误。
    我有一个函数initialize() 调用google.maps.event.addDomListener(window, 'load', initialize);,在初始化函数内部我有map = new google.maps.Map(document.getElementById("map-details"), mapProp); 和一个对API 休息的调用。在对 API 的调用内部,我有相同的代码 map = new google.maps.Map(document.getElementById("map-details"), mapProp);
    为了修复错误,我删除了初始化函数中的地图声明,并将其保留在 Api 调用中。
    这是我见过的最奇怪的事情,都是谷歌地图的错。

    之前

    function initialize(){
        map = new google.maps.Map(document.getElementById("map-details"), mapProp);
        $.ajax({
            ...,
            success: {
                map = new google.maps.Map(document.getElementById("map-details"), mapProp);
                ...
            }
        });
    }
    

    之后

    function initialize(){
        $.ajax({
            ...,
            success: {
                map = new google.maps.Map(document.getElementById("map-details"), mapProp);
                ...
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 1970-01-01
      相关资源
      最近更新 更多