检测来自iframe的滑动手势

时间:2013-10-29 10:14:23

标签: javascript iframe windows-8 windows-store-apps winjs

我在Windows商店开发中使用HTML / Javascript在Windows IF中加载本地HTML文件(Windows 8)。我正在尝试从Iframe获取Swipe事件。

我试过这个sample& this。我休养了包含一个div元素的鼠标滚轮方案。 对于Iframe,它不起作用。

我的代码:

<body>
    <iframe  id="iframe_Id" src="split.html" style="height:768px; width:1366px;" onload="Load();"></iframe>
</body>

function Load() {

var elt = document.getElementById("iframe_Id");

    elt.style.backgroundColor = "#f3f3f3";
    var gobj = new MSGesture();
    // Defining gesture object for Pen, mouse and touch
    gobj.target = elt;
    elt.gesture = gobj;
    elt.gesture.pointerType = null;

    // Creating event listeners for gesture elements
    elt.addEventListener("MSPointerDown", onPointerDown, false);
    elt.addEventListener("MSGestureTap", onTap, false);
    elt.addEventListener("MSGestureHold", onHold, false);
    elt.addEventListener("MSGestureChange", onGestureChange, false);

    // Mouse Wheel does not generate onPointerUp
    elt.addEventListener("MSGestureEnd", onGestureEnd, false);

}

function onPointerDown(e) { 
 var content = document.getElementById("iframe_Id");
}

我为所有事件创建了函数。但是当我在IFrame中滑动时,事件没有提升。  我在这里结构。我需要使用Swipe。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:5)

如果split.html是本地文件,您应该在iframe内监听事件。然后,您可以使用parent.postMessage()与主机/父HTML页面进行通信。

或者,您可以调查Windows 8.1中HTML / JavaScript应用程序可用的new WebView control

答案 1 :(得分:2)

您应该将<iframe>放在<div>块中,如下所示:

<body>
   <div id="watch">
       <iframe id="iframe_Id" src="split.html" style="height:768px;
       width:1366px;" onload="Load();">
       </iframe>
   </div>
</body>

然后您在div#watch而不是iframe中查看滑动,因为触摸事件将在DOM中,而不在iframe中。

相关问题