# Klick simulieren



## gulo92 (2. Februar 2012)

Hallo,

ist es irgendwie möglich, mit einer Funktion an einer bestimmten Stelle eines DIV-Layers einen "Klick" zu simulieren?


----------



## jannicars (2. Februar 2012)

nicht mit PHP,
aber: http://api.jquery.com/trigger/


----------



## gulo92 (4. Februar 2012)

danke, aber so meine ich das nicht. angenommen man hat eine Webseite die per Iframe in eine andere eingebunden wird. Dann soll beim Laden der Iframe-Inhalte sozusagen sofort ein "simulierter" Klick auf einen Button erfolgen, sodass ein anderer Inhalt angezeigt werden kann.


----------



## saftmeister (4. Februar 2012)

Auch das ist mit jquery möglich. Mit PHP hat das aber erstmal nichts zu tun.


----------



## Parantatatam (4. Februar 2012)

Wie schon vor mir erwähnt, ist dies mit PHP möglich, da PHP serverseitig ausgeführt wird. Du musst das mit Javascript lösen (jQuery ist bekanntermaßen ein Framework, das in Javascript geschrieben wurde). Allerdings kannst du auch ohne jQuery ein Ereignis simulieren: 

```
// create the event  
var evt = document.createEvent('Event');  
// define that the event name is `build`  
evt.initEvent('build', true, true);  
  
// elem is any element  
elem.dispatchEvent(evt);  
  
  
  
// later on.. binding to that event  
// we'll bind to the document for the event delegation style.   
document.addEventListener('build', function(e){  
  // e.target matches the elem from above  
}, false);
```
(Quelle: https://developer.mozilla.org/Creating_and_triggering_custom_events)


----------



## gulo92 (4. Februar 2012)

kannst du mir trotzdem nen Tipp geben?


----------



## Parantatatam (4. Februar 2012)

Wenn du dir mal die Seiten angesehen hättest, die von der von mir beigetragenen Seite aus gehen, dann hättest du dieses Beispiel noch gefunden:

```
function simulateClick() {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById("checkbox"); 
  var canceled = !cb.dispatchEvent(evt);
  if(canceled) {
    // A handler called preventDefault
    alert("canceled");
  } else {
    // None of the handlers called preventDefault
    alert("not canceled");
  }
}
```
(Quelle: https://developer.mozilla.org/en/DOM/document.createEvent)

PS: Ich habe dein neues Thema im Javascript-Abteil mal gemeldet, hoffend, dass es mit diesem hier zusammen geführt wird.


----------



## gulo92 (4. Februar 2012)

Cool  als ich meine Antwort geschrieben hatte, hatte ich deinen ersten Link noch gar nicht gesehen.. Danke! so ganz blick ich bei der Funktion function simulateClick() die du hier gepostet hast noch nicht durch .. wäre das auch möglich, wenn man auf die Seite selbst keinen Zugriff hat? Also im Beispiel wird ja die Checkbox markiert .. Geht das nach der Position, oder klickt der in jedem Fall die Checkbox, auch wenn die weiter drüben stehen würde. Ich mein, wenn die Checkbos jetzt angenommen per Iframe eingebunden wäre und ich die "simuliert" anklicken lassen wöllte, wäre das dann auch möglich?

um mein Problem zu lösen hätte man noch eine andere Möglichkeit .. ist es möglich dass ein div-Layer beim Klick darauf (irgendwo in der Fläche) geschlossen wird?


----------



## saftmeister (4. Februar 2012)

Schließen geht nicht, aber du kannst das Element verstecken. Dafür bietet dir jquery die Methode hide an.


----------



## Quaese (5. Februar 2012)

Hi,

Zugriff auf das Dokument des iFrames hast du nur, wenn sich die Dokumente unter der gleichen Domain befinden und somit die Richtlinie der gleichen Herkunft (same origin policy) nicht verletzt wird.

Ciao
Quaese


----------

