Отслеживание кликов внутри iframe с помощью Jquery - PullRequest
1 голос
/ 24 августа 2011

Я пытаюсь найти способ отслеживания кликов внутри фрейма с помощью jquery. Iframe находится в том же домене, но я все еще не могу заставить это работать, вот мой код:

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
    var clicks = 0;
    $('#myframe').load(function() {
        alert('loaded');
        var that = $(this);
        that.contents().find('a').bind('click', function(e) {
            e.preventDefault();
            clicks++;
            $('#clicks').html(clicks);
        });
    });
</script>
</head>
<body>
Clicks: <span id="clicks" >0</span>
<iframe id="myframe" src="test_iframe.php" width="500" height="500"></iframe>
</body>
</html>

Есть идеи, что может быть не так?

Я видел другие вопросы, очень похожие на этот вопрос в SO, но ни один из ответов не решил мою проблему.

UPDATE:

Я обновил свой код на http://www.politicos.biz/stack/iframe_click.php с помощью кода @Wes, он работает на jsfiddle, но не на моем сайте.

Ответы [ 3 ]

0 голосов
/ 24 августа 2011

Вот пример:

http://jsfiddle.net/wesbos/VxA8t/1/

$(function() {
    var clicks = 0;
    $('#myframe').contents().find('a').bind('click', function(e) {
        e.preventDefault();
        clicks++;
        $('#clicks').html(clicks);
    });
});

Сначала вам нужно найти ссылку, а затем привязать ее.

Ваш код должен быть чем-токак это:

$('body', $('templateframe')).contents().find('a').click(function(event) {
  alert("Link Clicked");
});
0 голосов
/ 24 августа 2011

в родительском фрейме, создайте функцию для вызова изнутри iframe.

Родитель:

var click = 0;
function addClick()
{
    click++;
}

затем, позвоните из iframe

parent.addClick();

наконец, просто обратитесь к click для количества кликов. Надеюсь, это поможет.

0 голосов
/ 24 августа 2011

Убедитесь, что iframe полностью загружен, прежде чем добавить событие.

Я ожидаю, что обработчик будет добавлен с .document

$('body', window.parent.frames[0].document).click( 
    function(){} 
);

OR

$('body', $('templateframe')[0].document).click( 
    function(){} 
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...