Детский iframe не получает сенсорные события - PullRequest
1 голос
/ 26 мая 2011

У меня есть следующий код:

<div id="scroller" style="width: 50%; overflow: auto;"> 
            <iframe height="100%" id="iframe" scrolling="no" width="100%" id="iframe" src="responses.html" /> 
        </div> 

Теперь я хочу, чтобы таблица данных iframe прокручивалась на главной странице iPad.

Я использовал js на странице iframe для прослушивания сенсорных событий touchstart, touchmove и т. Д.

Но по некоторым причинам эти события никогда не запускаются на iPad.

Я тоже пробовал это;

var startY = 0;
    var startX = 0;
    document.addEventListener("touchstart", function (event) {
    alert(11);
        parent.window.scrollTo(0, 1);
        startY = event.targetTouches[0].pageY;
        startX = event.targetTouches[0].pageX;
    });
    document.addEventListener("touchmove", function (event) {
        event.preventDefault();
        var posy = event.targetTouches[0].pageY;
        var h = parent.document.getElementById("scroller");
        var sty = h.scrollTop;
        var posx = event.targetTouches[0].pageX;
        var stx = h.scrollLeft;
        h.scrollTop = sty - (posy - startY);
        h.scrollLeft = stx - (posx - startX);
        startY = posy;
        startX = posx;
    });

Не могли бы вы помочь мне. Спасибо ...

1 Ответ

1 голос
/ 12 июня 2011

1) Извлеките дубликат тега id из iframe:

<iframe height="100%" id="iframe" scrolling="no" width="100%" src="responses.html" />

2) добавьте его в свой css:

#scroller {
z-index:-1;
}

#iframe {
z-index:1;
}

и посмотрите, будет ли это иметь эффект,Если это не так, вы всегда можете использовать AJAX.

Убедитесь, что jquery включен на странице, а затем:

<script>    
$.ajax({
      url: "responses.html",
      cache: false,
      success: function(html){
        $("#results").append(html);
      }
    });
</script>

<div id="results" height="100%" width="100%"></div>
...