2014-12-20 5 views
2

Это мой IFrame HTML код:Срабатывание нажмите через IFRAME

<ul id="titleee" > 
<li><a href="http://adskpak.com/?type=2&id=jayvicious">CLick me</a></li> 
</ul> 

Это мой основной код страницы:

<iframe id="iframe" src="iframe1.php"></iframe> 

<script> 
$(document).ready(function(){ 
    $('#iframe').contents().find('#titleee').click(); 
}); 
</script> 

Кажется, это не вызывает событие щелчка.

+0

Возможный дубликат [Захват Jquery Нажмите на Iframe] (http://stackoverflow.com/questions/15557155/jquery-capture-click-on-iframe) –

+0

Похоже, вы пытаетесь вызвать щелчок на теге привязки в iframe. Для этого вам нужно будет иметь код запуска в документе iframe и добавить слушателя для сообщений из родительского документа. – macguru2000

ответ

0

Просто проверьте консоль вашего браузера на наличие ошибок: -
Вы могли бы получать эту ошибку: -

SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://www.goibibo.com" from accessing a cross-origin frame. 

Это будет работать, если у вас есть и родителя и IFRAME на одном домене. Установите document.domain как страницы, так и iframe на то же значение, то есть ваш домен, а затем проверьте.

0

Я думаю, что что-то вроде этого должно работать, хотя я больше не делаю jQuery, просто ванильный Javascript. Я уверен, что вы можете понять, как это сделать в jQuery.

это ваш код IFrame:

<ul id="titleee" > 
<li><a href="http://adskpak.com/?type=2&id=jayvicious">Click me</a></li> 
</ul> 
<script> 
    window.addEventListener("message", function() { 
    if (event.origin === 'http://adskpak.com') { 
     if (event.data === 'click the link') { 
     document.querySelector('#titleee a').click(); 
     } 
    } 
    }); 
</script> 

теперь ваш основной код страницы:

<iframe id="iframe" src="iframe1.php"></iframe> 
<script> 
    var iframeWindow = document.querySelector('#iframe').contentWindow; 

    // this needs to happen after the load event, 
    // but it is best if it happens on a user's action. 
    window.onload = function() { 
    iframeWindow.postMessage('click the link', '*'); 
    } 
</script> 

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

Load denied by X-Frame-Options: https://www.google.com/ does not permit cross-origin framing. 

Я не уверен, если это важно для вас, как это похоже, что вы все делаете в своем собственном домене, просто голова.

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