zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Standarisiertes API für postMessage/onmessage?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 29.05.2014, 19:09
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard Standarisiertes API für postMessage/onmessage?

Hallo,

ich arbeite an einer Komponente, die ermitteln soll, ob z.B. ein IFrame angeklickt wurde. Wenn die Seite im Frame von einer anderen Domain kommt, wird das mousedown-Event nicht ausgelöst.

Die fremde Seite könnte höchstens per postMessage mitteilen, dass sie angeklickt wurde. Solange nur gesendet wird, dass die Seite angeklickt wurde, aber nicht die Koordinaten o.ä., sollte das kein Sicherheitsrisiko sein.

Die Frage ist: Hat inzwischen jemand ein standarisiertes API entworfen, das ausgewählte Informationen zwischen einander unbekannten Seiten austauschen kann?

Weil dann würde ich mich natürlich beim Entwurf dieser Komponente daran halten.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 11.06.2014, 22:22
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

So, ich habe die fragliche Komponente entwickelt: mitjastachowiak.de/?/Projects/JSLib/FrameCommunicator
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 12.06.2014, 15:48
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Nicht schlecht. Jetzt fehlt noch eine Lizenz und, dass du es auf Github hostest
__________________
github | http://dnaber.de
Mit Zitat antworten
  #4 (permalink)  
Alt 12.06.2014, 17:22
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

Achja - die Lizenz vergesse ich immer. Aber für Quelltexte, die ich explizit hochlade und auf meiner Homepage dokumentiere, verwende ich eigentlich immer Public Domain. Habe ich eben noch ergänzt, danke

Mit Github habe ich mich noch nicht beschäftigt. Muss ich mal machen.

Es ist auch noch nicht 100%ig fertig, diese frameübergreifenden Geschichten werden erfahrungsgemäß immer komplexer, als man gedacht hat. Hier zum Beispiel gibt es das Problem, dass man in Webkit nicht erkennen kann, ob sich die Seite im Frame geändert hat. Also man bekommt ja nur das onload-Event mit, aber die Seite kann ja schon vor dem Onload ihre Größe gepostet haben, aber man weiß dann nicht, ob das wirklich schon die neue Seite war, oder doch noch die alte. Ich muss deswegen beim onload des Frames in Webkit die alten Daten löschen. Denn das iframe.contentWindow bleibt das gleiche. In allen anderen Browsern funktioniert noch der Trick, nicht contentWindow. sondern contentWindow.postMessage zu vergleichen.
Code:
 if (iframe.contentWindow.postMessage != currentSite) alert('Das Dokument im Frame hat sich geaendert!');
 currentSite = iframe.contentWindow.postMessage;
Nur in Webkit bleibt auch diese Methode identisch
Mit Zitat antworten
  #5 (permalink)  
Alt 15.06.2014, 16:48
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

Ahaa, man nehme statt iframe.contentWindow.postMessage einfach iframe.contentWindow.location als Vergleichsobjekt. Dann dud's [Edit] In Webkit...

Ich dachte, location wäre durch die same-origin-policy gesperrt, aber es wird nur z.B. das lesen von location.href verboten.

Naja, jetzt habe ich eine komplizierte Hirachie an Abfragen gebaut, mit der man feststellen kann, ob die Seite im Frame noch die gleiche ist. Nur im IE geht es nicht immer

Geändert von MitjaStachowiak (15.06.2014 um 21:03 Uhr)
Mit Zitat antworten
Antwort

Stichwörter
api, frame, iframe, interface, onmessage, postmessage, standard

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mobile.de Api .ajax() request 403 forbidden Madmaxx89 Javascript & Ajax 4 21.02.2014 22:37
[JS] hilfe bei API benutzen Joe235 Javascript & Ajax 2 03.12.2013 20:48
HTML5 Drag & Drop API maxbauer (X)HTML 0 30.08.2012 12:28
Yahoo API? steve46 Offtopic 1 13.06.2011 14:53


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:47 Uhr.