• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Geisterhafte Webseite

loxx

New member
Hallo zusammen,

ich bin heute auf etwas sehr Merkwürdiges gestoßen. Ich habe zwei Formulare, deren Ergebnisse beide in ein IFrame ausgegeben werden:

(Live-Beispiel)

HTML:
<iframe id="innerDisplayFrame" name="innerDisplay" src="about:blank" width="500" height="500"></iframe>


<li><FORM method="get" action="http://test.de" target="innerDisplay">
	<span class="label">allgemein</span>
	<input autocomplete="off" name="searchTerm" type="text">
	<button class="submitButton"><span>►</span></button>
</FORM></li>

<li><FORM method="get" onsubmit="document.getElementById('innerDisplayFrame').src='http://de.similarsites.com/site/'+this.searchTerm.value; return false;" target="innerDisplay">
	<span class="label">SimilarSites</span>
	<input autocomplete="off" name="searchTerm"  type="text">
	<button class="submitButton"><span>►</span></button>
</FORM></li>


Das obere Formular ist mit seinem action-Attributwert "test.de" natürlich an sich Nonsense und dient nur Beispielzwecken.

Die Formulare arbeiten an sich wie beabsichtigt - außer in folgendem, für mich unerklärlichen Spezialfall:

Habe ich im unteren Formular einen Domainnamen mit ".com"-Endung eingegeben, funktioniert das obere nicht mehr wie gehabt, sondern öffnet sein Ergebnis in einem neuen Fenster/Tab (FF & Chrome).

Ist es aber nur ein .de-Name gewesen, ist alles normal.

Was passiert da? Wie und warum machen die von SimilarSites das? Oder machen die das gar nicht?


Schöne Grüße

loxx
 
Kann vielleicht mit der SOP zu tun haben?
Paßt das hier? https://support.mozilla.org/en-US/questions/969844

Denke nicht, denn mit allen Seiten funktioniert es normal (z.B. eBay), nur nicht mit SimilarSites, und auch bei SimilarSites nur dann nicht, wenn der User "xyz.com" in das Input-Feld eingibt. :confused:

Es ist auch kein bloßes Firefox-Problem, denn Chrome verhält sich genau so. Ich bin mir ziemlich sicher, dass SimilarSites dafür verantwortlich ist - nur, in welcher Weise?!
 
SimilarSites ändert den Namen des iFrame-Fensters. Dadurch stimmt dein target-Attributswert nicht mit dem Namen überein und das Formular wird in ein neues Fenster (das jetzt den Namen innerDisplay bekommt) abgeschickt.

Warum jetzt das obere <form> noch funktioniert ist mir etwas rätselhaft... eventuell merkt der Browser, das das Fenster, in das man gerade abgeschickt hat, den Namen gewechselt hat und merkt sich das im <form>...
 
Ein Schritt fehlt in dem Screenshot noch. Nachdem du unten "test.com" eingegeben hast, gibst du noch irgendwas im oberen Feld ein. Dann dürfte er auch bei dir ausbrechen.

Ah ja, jetzt verstehe ich dich; bei mir ist es ebenfalls so, dass ein neuer Tab geöffnet wird.
 
Ah ja, jetzt verstehe ich dich; bei mir ist es ebenfalls so, dass ein neuer Tab geöffnet wird.

Total weird, oder?!


SimilarSites ändert den Namen des iFrame-Fensters. Dadurch stimmt dein target-Attributswert nicht mit dem Namen überein und das Formular wird in ein neues Fenster (das jetzt den Namen innerDisplay bekommt) abgeschickt.

Das dachte ich auch, aber ich habe mal den name-Wert des iFrames per JavaScript überwacht: Eine Änderung des Namens konnte ich nicht feststellen.

Und selbst wenn SimilarSites dies versuchen würde, dann würde es die Same-Origin-Policy des Firefox verhindern (also ich kann aus dem Inneren eines IFrames nicht einmal einen Funktionsaufruf mit "top.irgendwas()" starten). Und warum würde SimilarSites so etwas nur bei der Suche nach ".com"-Seiten machen?
 
Zuletzt bearbeitet:
Nein, das name-Attribut gehört zum window Objekt und das ist in der Domain von SimilarSites. Ds target-Attribut interessiert sich überhaupt nicht für das name-Attribut des <iframe>s, sondern nur um das name-Attribut der ganzen geöffneten window-Objekte...
 
Nein, das name-Attribut gehört zum window Objekt und das ist in der Domain von SimilarSites. Ds target-Attribut interessiert sich überhaupt nicht für das name-Attribut des <iframe>s, sondern nur um das name-Attribut der ganzen geöffneten window-Objekte...

Jau, hast recht, habe gerade den Quellcode angeschaut. Bei "test.com", nicht aber bei "test.de", steht drin:

Code:
this.sfecw = { f:function(name, value) { var fv=""; try { if (typeof(value) != "undefined") window.name = strrp(window.name, name, value); else fv = strgt(name, window.name); } catch(e) { } return fv; }, name:"sbbrf" };

Danke für die Hilfe.
 
Zurück
Oben