iframe에 다른 웹 사이트를로드하는 페이지가 있습니다. 문제는 이제 맨 위 창이 흐려지면 카운터를 중지해야하는 경우 기록해야한다는 것입니다. iframe을 클릭하면이 창에 초점이 맞춰지고 커서를 가져간 후에 포커스를 맨 위 창으로 되돌릴 수 없습니다. 따라서 브라우저에서 다른 탭을 클릭하면이 윈도우의 실제 흐림 기능이 호출되지 않습니다. 필요한 것은 iframe을 클릭하고 커서가 mouseleave를 사용하여 iframe에서 뒤로 이동 한 후 원래 포커스를 맨 위 창으로 되돌려 보내는 방법입니다.iframe로드 함수의 간격이 두 번 계산되어 중지 할 수 없습니다.
나는 stackoverflow에서 찾은 것이지만 나에게 어울리지 않는 몇 가지 방법을 시도했다.
은 다음과 비슷한 모습이 될 것입니다
$('iframe').mouseleave(function()
{
$(window.top).focus();
});
$(window).blur(function()
{
console.log('window blur');
});
EDIT 해결 과정하지만 사항 clearInterval 지금은 작동하지 :
나는 위의 코드에 대한 답을 가지고 있지 않았기 때문에 나는이 일을 다른 무언가를 시도했다. 나는 몸을 확인했고 마우스가 떠날 때 그 간격을 멈췄다. 이것은 나를 위해 충분했다. 하지만 iframe이로드되었을 때 카운터를 시작하는 것이 좋을 것이므로 $('iframe').load
함수 내부에 간격을 넣으려고했습니다. 그러나 그 일은 두 번 세어 볼 수 있습니다. 1 초 간격으로 2 초가 필요합니다. 그리고 이제 마우스가 몸을 떠날 때 간격을 멈추지 않고 멈추지 않고 1 초로 되돌립니다. 코드 아래 :
var $interval = '';
$('body').mouseleave(function()
{
clearInterval($interval);
$('.message').html('<div class="alert alert-error"><button type="button" class="close" onclick="javascript:window.opener=\'x\';window.close();">×</button>You may not navigate away from advertisements! Click <a href="">here</a> to try again.</div>');
});
$("iframe").load(function()
{
$interval = setInterval(function()
{
clearInterval($interval);
console.log('clear interval not working when inside iframe load function');
}, 1000);
});
누군가가 여기에서 무슨 일이 일어나고 있는지 알고 싶습니다. 고맙습니다.