2012-07-04 2 views
1

Я хочу сделать событие автоматического клика для кадра 1 через 4 секунды после загрузки link.php. Мой код Link.php являетсяСобытие jquery и frame click

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Source</title> 
<script type='text/javascript' src="js/jquery-1.5.2.min.js"></script> 
<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
$(function() { 
    $('[alt="Skip"]').click(function(){}); 
    setTimeout(function(){$('[alt="Skip"]').trigger('click');}, 4e3); 
}); 
});//]]> 
</script> 
</head> 
<frameset rows="200px,*" style="width:100%"> 
     <frame src="skip.php" frameborder="0" name="frame1" /> 
     <frame src="http://xyz.com" frameborder="0" /> 
</frameset><noframes></noframes> 
</body> 
</html> 

код внутри skip.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<a href="http://www.example.com/"><img src="images/skip.png" border="0" alt="Skip"></a> 
</body> 
</html> 

Javascript код работает, когда его вставили в skip.php, но я хочу работать его в link.php

+0

Что 4E3 в функции времени, установленного в link.php? – Polyov

+0

его функция тайм-аута 4 с – user1502071

+0

Внутри skip.php alt = "skip" not alt = "Пропустить это объявление" – user1502071

ответ

2

Рабочий сценарий

$(document).ready(function(){ 
$($('frame[name="frame1"]')[0].contentWindow).load(function() { 
var documentOfFrame = $('frame[name="frame1"]')[0].contentDocument; 

    $('[alt="Skip"]',documentOfFrame).click(function(){}); 
    setTimeout(function(){$('[alt="Skip"]',documentOfFrame).trigger('click');}, 4e3); 
}); 
}); 
0

Вы должны указать документ фрейма в качестве контекста для jQuery() селектора:

$(function() { 
    //Waiting till the frame's hierarchy will be constructed 
    $(frames['frame1']).load(function() { 
     var documentOfFrame = this.contentDocument; 

     $('[alt="Skip"]',documentOfFrame).click(function(){}); 
     setTimeout(function(){$('[alt="Skip"]',documentOfFrame).trigger('click');}, 4e3); 
    }); 
}); 

См. Раздел "Selector Context".

+0

Этот тоже не работает – user1502071

+0

@ user1502071 Попробуйте эти $ (document) .ready (function() {$ ($ ('frame [name = "frame1"]') [0] .contentWindow) .load (function() {alert ('frame is load');});}); 'и' $ (window). load (function() {alert ('основное содержимое загружено');}); '. Затем скажите мне последовательность, в которой срабатывает 'alert's. – Engineer

+0

загружен фрейм оповещения – user1502071

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