2012-12-11 2 views
0

마우스가이 대답에 지정된대로 창에서 나가는 지 감지합니다 : How can I detect when the mouse leaves the window?.iframe에 마우스가 들어가면 문서 mouseout 이벤트가 발생하지 않도록하려면 어떻게해야합니까?

문제는 마우스가 iframe (제 경우의 Youtube 동영상 포함)에 들어가면 브라우저가이 이벤트를 트리거한다는 것입니다.

어떻게 방지 할 수 있습니까?

감사합니다.

+0

흠, 난 당신이 직접 당신이 어떤 종류를 적용해야합니다 수 있다고 생각하지 않습니다 해킹 또는 해결 방법. 정의에 따르면 iframe은 다른 창입니다 ...이 점에 대해 생각해 봅시다. – Ryan

답변

0

당신은 단순히 핸들러 이런 식으로 수정해야합니다 :

addEvent(document, "mouseout", function(e) { 
    e = e ? e : window.event; 
    var from = e.relatedTarget || e.toElement; 

    // we will check if this won't be iframe 
    var to = e.target || e.srcElement; 
    if ((!from || from.nodeName == "HTML") 
     && to.nodeName !== "IFRAME") { 
     console.log('mouse out') 
    } 
}); 

편집 추가 IE를 지원하는 e.srcElement 옵션을

+0

이 솔루션이 크로스 브라우저인지 확인하십시오. – dirtv

+0

이것은 주로 (적어도 Firefox에서는) 작동합니다. 그러나 마우스가 iframe에서 빠르게 돌아가고 문서에서 돌아올 때 여전히 잘못된 양성으로 보입니다. – dirtv

+0

지금은 테스트 할 수 없지만'e.srcElement'는 IE와 호환 될 것이라고 확신합니다. 게시물을 수정했습니다. 그리고 빠른 마우스 이동으로, 그것은 나를 위해 어떤 것도 유발하지 않습니다. 어떻게 그 일을 했습니까? –

관련 문제