我在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。请帮我解决这个问题。
答案 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中。