2015-08-26 2 views
1

подсчета кликов на IFRAME

jQuery(document).ready(function (e) { 
 
    focus(); 
 
    var listener = addEventListener('blur', function() { 
 
     if(document.activeElement === document.getElementById('my_iFrame')) { 
 
      console.log("clicked!"); 
 
     } 
 
     removeEventListener(listener); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<iframe src="http://example.com" id="my_iFrame"></iframe>

Этот счетчик кода только один щелчок. Как сделать подсчет большего количества кликов?

Спасибо!

+0

«щелкнул» печатаются несколько раз в моей консоли – kiranvj

+1

Это похоже на работу, как вы намерены. Вы уверены, что находитесь за пределами '' 'iframe''' между кликами? Чтобы запустить обработчик '' 'blur''', вам нужно сначала восстановить фокус на родительский документ. – benjarwar

+0

Возможный дубликат [Добавить событие щелчка в iframe] (http://stackoverflow.com/questions/15080222/add-click-event-to-iframe) – benjarwar

ответ

1

@benjarwar прав в обоих своих комментариях, однако я считаю следующее решение более элегантным, чем тот, который предлагается в другом посте, но будучи пост, который не активен более 1 года, я отправлю решение здесь.

Это будет работать как кросс-домен, так и до тех пор, пока вы будете иметь доступ как к iframe, так и к исходному коду кадра.

Предполагалось, что вы будете использовать jQuery как в родительском, так и в iframe!

В IFRAME добавить:

$("html").on("click",function(){ 
parent.postMessage("click", "*"); 
}); 

В родителе добавляемый:

window.addEventListener("message", function(event) { 
if (event.data=="click") 
//above if only added to be sure you are not getting some other messages post to you parent page. 
    { console.log("clicked!"); } 
}); 
+0

У меня нет acces в iframe. Iframe содержит, например: bing.com, example.com, .... – bushpop

+0

К сожалению, нет способа взаимодействия с iframe, если он не находится в одном домене, или у вас нет доступа к его источнику. –

Смежные вопросы