2013-06-04 12 views
5

Jeśli użytkownik kliknie obraz, chcę, aby jednocześnie wywoływać kliknięcie na określonej ramce iFrame. Czy to jest możliwe? Obraz i element iFrame znajdują się na tej samej stronie. Jeśli tak, czy możesz pokazać mi kod, który zadziała?jQuery, aby wywołać kliknięcie elementu iframe?

Oto co mam do tej pory:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
</head> 
<body> 
<img id="image" src="https://www.google.com/images/srpr/logo4w.png"> 

<iframe id="iframe" src="http://www.test.com" height= "100" width="160"></iframe> 

<script> 
jQuery("input.image").click(function(){ 
    $("#iframe").click() 
}); 
</script> 

</body> 
</html> 
+2

to lepiej, aby spróbować to zrobić, a następnie, jeśli okaże post problemu kod do rozwiązania razem :) – Somar

+1

OK Właśnie zaktualizowałem moje oryginalne pytanie z kodem na to, co dostałem do tej pory. – user2453693

Odpowiedz

6

Twój selektor jQuery obraz jest źle.

zmiana

jQuery("input.image") 

do

$("#image") 

Wtedy wszystko będzie działać. Widać to w tym fiddle

post Edytuj

Jeśli chodzi o to, aby wywołać kliknięcie na jednym z elementów zawartych w iframe, a następnie zastąpić

$("#iframe").click() 

z czymś :

$("#iframe").contents().find("a:first").click(); 

Będzie działać tylko wtedy, gdy zawartość strony głównej i strony iFrame są w tej samej domenie. W przeciwnym razie przeglądarki zapobiegną działaniu, ponieważ jest to skrypt krzyżowy. widać w przykładzie, zapobieganie XSS nastąpi jak wykazano w this fiddle

+0

To działa, coś w stylu. Mimo że otrzymuję alert z informacją "iframe clicked", nie wydaje się, aby kliknął element iFrame, ponieważ zawartość wewnątrz faktycznej ramki iFrame, gdyby rzeczywiście została kliknięta, otwierałaby kolejne okno, a to się nie dzieje. – user2453693

+0

Twoje pytanie wymagało wywołania kliknięcia na iFrame. To właśnie dzieje się w moim przykładzie. Rozumiem, że chcesz zainicjować kliknięcie elementu, który znajduje się w treści elementu iFrame? – dcarson

+0

@ dcarson - Tak, to prawda; przepraszam, nie byłam jasna. Potrzebuję go do kliknięcia na zawartość wewnątrz iFrame. W szczególności istnieje odsyłacz do treści iFrame, która jest mi potrzebna do kliknięcia. Oto kopia rzeczywistej zawartości iFrame. Możesz zobaczyć link, który jest potrzebny do kliknięcia, jest to jedyne łącze w treści iFrame. http://pastebin.com/cXsuq71P – user2453693

1

myślę potrzebne coś takiego: -

$("#image").click(function(){ 
    var $iframe = $("#iframe").contents(); 
    $("body", $iframe).trigger("click"); 
}); 
+0

Próbowałem tego i po kliknięciu obrazu nic nie dzieje się z ramką iFrame.Zawartość ramki iFrame jest także obrazem, ale obraz w ramce iFrame to hiperlink. Kiedy kliknę obraz, powinien on również wywołać kliknięcie na iFrame, które powinno otworzyć nową stronę, ponieważ obraz w iFrame jest linkiem. – user2453693

+0

Proszę sprawdzić. Dodałem nową odpowiedź. – pvnarula

Powiązane problemy