이전, 현재 및 다음 페이지를 나타내는 3 개의 iframe을 포함하는 html 문서가 있습니다. jquery touchswipe 플러그인을 통해 페이지를 스 와이프 할 수 있도록 설정하고 있지만 iframe 내부의 문서를 클릭하도록합니다. 다음은 HTML 형식입니다.iframe을 넘기고 click 이벤트를 전달하고 imagemap 영역에 null을 반환하는 elementFromPoint
페이지 래퍼 요소를 스 와이프하면 이전 페이지 또는 다음 페이지가 활성 페이지가됩니다. 페이지의 크기는 100 %이고 활성 페이지는 브라우저의 뷰포트를 채 웁니다. 모든 것이 동일한 도메인 내에 있습니다. iframe의 문서에는 이미지 맵이 포함될 수 있습니다.
iframe은 마우스 이벤트를 캡처하여 부모 페이지에서 스 와이프 기능을 사용하지 않도록 설정합니다. 다른 사람들이 제안했듯이 투명 div를 오버레이하고 elementFromPoint를 사용하여 iframe의 문서에서 대상을 찾은 다음 click 이벤트를 대상에 직접 전달하는 방법이 있습니다.
나는 coverIframes plugin 사용하여이를 구현했습니다 :이 방법은 대부분의 요소에 대한 작동
$.fn.coverIframes = function(){
$.each($("iframe",this),function(i,v){
var ifr = $(v);
var wr = $("<div id='wr"+new Date().getTime()+i+"' style='z-index: 999999; opacity: 0; position:absolute; width:100%;'></div>");
ifr.before(wr);
wr.height(ifr.height());
wr.click(function(event){
var iframe = ifr.get(0);
var iframeDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
// Find click position (coordinates)
var x = event.offsetX;
var y = event.offsetY;
// Trigger click inside iframe
var link = iframeDoc.elementFromPoint(x, y);
var newEvent = iframeDoc.createEvent('HTMLEvents');
newEvent.initEvent('click', true, true);
link.dispatchEvent(newEvent);
});
})
};
있지만, 그것은 이미지 맵의 영역에 대해 그렇게하지 않습니다 - 적어도 크롬 브라우저 내에서 (32 VER). 이러한 경우 null을 반환합니다. 해결 방법을 찾기 위해 노력에서, 여기에 마음에 와서 3 questons 있습니다
는 iframe이 창에 직접 부모의 클릭 이벤트를 전달하고 정확하게 이벤트를 처리 할 수있는 방법이 있는지 등 사용자는 창에서 을 클릭 했습니까? (즉, 윈도우가 표적 발견 및 는 DOM의 요소를 통해 이벤트 거품.)
확실 타겟 요소를 돌려 elementFromPoint 유사한 대체 할 수있는 다른 기능이 있는가?
내가 수동으로 지역에 널 (null) 결과를 처리하는 경우가 주어진 지점이지도의 영역 내에 있는지 확인합니다 자바 스크립트 함수 또는 jQuery 플러그인을 존재하는 ? (I 다각형의 한 지점을 찾는 A의 일부 기능을 본 적이있다.)
감사를 당신이 제공 할 수있는 통찰력!