2013-09-04 10 views
6

Próbuję symulować zdarzenie click w http://translate.google.com z jquery. W tym celu, załadowałem plik jquery z tym kodem:Nie można zwolnić zdarzenia z jquery

var script = document.createElement("script"); 
script.src = "http://code.jquery.com/jquery-1.10.1.min.js"; 
document.body.appendChild(script); 

Potem próbuję symulować kliknięcie na element z selektora, tak:

jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("mousedown") 

Próbowałem też to kliknięcie wydarzenie zamiast mousedown:

jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("click") 

Żaden z nich daje efekt ręcznie klikając na div, a mianowicie otwarcie nowego div. Dołączyłem ss pożądanego zachowania.

clicked state

Co może być przyczyną jQuery nie działa? Albo jak mogę symulować efekt w jakikolwiek inny sposób?

Edycja: Dodawanie jQuery wydaje się być skuteczne w tym sensie, że mogę użyć metody jQuery, aby wybrać elementy i zmienić zawartość nich itp

+2

Nie jestem pewien, czy rozumiem - Czy próbujesz wywołać kliknięcie na witrynę innej firmy przy użyciu jQuery? –

+1

Myślę, że @RoryMcCrossan ma rację, czy jest to ** iframe **, które próbujesz zdobyć? – Praveen

+0

Po pierwsze, "kliknięcie" jest właściwym wyzwalaczem. Po drugie, czy piszesz rozszerzenie? – Archer

Odpowiedz

9

Roztwór tworząc MouseEvent i wysłania go do elementu, tak :

var e1 = document.createEvent("MouseEvents"); 
e1.initMouseEvent("mousedown", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); 
jQuery('#gt-sl-gms')[0].dispatchEvent(e1) 

wydaje mechanizm zdarzenie jQuery używa innego systemu dyspozytorskiego, ponieważ nie można wywołać funkcję detektora, choć nie potwierdzają tych informacji.

+0

to nie działa w I.E 9 !! Wszelkie pomysły na temat rozwiązania opartego na różnych przeglądarkach? –

+0

pracował jak urok! –

Powiązane problemy