代码之家  ›  专栏  ›  技术社区  ›  Mantvydas Binderis

在ios上的页面之间传递数据

  •  0
  • Mantvydas Binderis  · 技术社区  · 6 年前

    我一直在做研究,但就是找不到有效的解决办法。 我在一个网站上工作,我有一个幻灯片旋转木马,在主页上有三张幻灯片。两张链接到同一activity.html的幻灯片,只指向不同的“标签页/卡片”。一张来自主页的幻灯片打开activities.html页面上的activity‘tab’/‘card’,另一张使用本地存储打开consultation‘tab’/‘card’。在电脑上工作很好,但是 问题是:

    这在我的iphone上不起作用。 经过调查我发现那是私人的…不管怎样..关于狩猎的问题。我试过使用store.js、memoryStorage.js、coockies.js等。没有人帮忙。尝试使用querystring和hash,但问题是这些字符串仍保留在url中。 我迫切需要找到解决这个烦人问题的办法。

    我使用的逻辑很简单: 在滑动按钮上,按i将项目设置到主js文件的localstorage中。在activities.html中,我有一个小脚本,从localstorage中获取项目,然后检查两个项目中的哪个在localstorage中。如果是旅游,那么打开旅游“标签页”/“卡片”如果是咨询等,你就会得到这个想法… 此脚本位于主js文件中:

    (function() {
    const travelSlideBtn = $("a#slide2-btn");
    const consultationSlide = $("a#slide3-btn");
    
    function setTravelSlide() {
      localStorage.setItem("travelSlide", "travelSlide");
    }
    function setConsultationSlide() {
      localStorage.setItem("consultationSlide", "consultationSlide");
    }
    
    //Events
    travelSlideBtn.on('click', setTravelSlide);
    consultationSlide.on('click', setConsultationSlide)
    

    }());

    该脚本位于activities.html页面中:

    let travelSlide = localStorage.getItem("travelSlide");
    let consultationSlide = localStorage.getItem("consultationSlide");
    const thumbnail = $(".thumbnail");
    const travelThumbnail = $(".travel-thumbnail");
    const consultationThumbnail = $(".consultation-thumbnail");
    let thumbnailOffsetTop = thumbnail.offset().top - $("#main-header").height();
    
    if ('localStorage' in window && window.localStorage !== null) {
      if (travelSlide == "travelSlide") {
        TweenMax.to(window, 1, {scrollTo:{y:thumbnailOffsetTop, ease: Power4.easeOut}, onComplete:function(){
          travelThumbnail.click();
          localStorage.removeItem("travelSlide");
        }});
      }
      if (consultationSlide == "consultationSlide") {
        TweenMax.to(window, 1, {scrollTo:{y:thumbnailOffsetTop, ease: Power4.easeOut}, onComplete:function(){
          localStorage.removeItem("consultationSlide");
          consultationThumbnail.click();
        }});
      }
    }else{
      console.log('cannot use');
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Mantvydas Binderis    6 年前

    我发现了问题所在。我看错事了。本地存储没有问题。GSAP在这里引起了问题:

    TweenMax.to(window, 1, {scrollTo:{y:thumbnailOffsetTop, ease: Power4.easeOut, autoKill:false}, onComplete:function(){
            localStorage.removeItem("consultationSlide");
            consultationThumbnail.click();
          }});
    

    当我将autokill设置为false时,一切都开始工作。 嘿,浪费了这么多时间去寻找错误的东西:)