Ich habe ein Tool erstellt, das mit einem ziemlich beliebten Musikhändler verwendet wird.Würde einen Rahmen (Toolbar) um einen iFrame schließen.
Das Tool bietet eine erweiterte Suchfunktion (transparent last.fm Ergebnisse, keine Werbung, keine Lahmheit, nichts gruselig) und ich habe die nützlichste und unaufdringlichste Möglichkeit gefunden, die Suche als eine Symbolleiste mit dem viel geschmähten anzuzeigen iframe. Dadurch können Benutzer die Suche laden, ohne den Fokus des Benutzers zu stehlen.
Da ich kein besonders großer Fan von iFrames bin, dachte ich, es wäre trivial, einen "close this frame" (ala Google Bildsuche) Link hinzuzufügen, der es Nutzern ermöglicht, schnell und einfach die Kontrolle über ihren Browser zu erlangen.
Aber im Gegensatz zu google weiß ich nicht, wo sich der Inhalt im iframe befindet (nur wo er angefangen hat, via src).
So jetzt bin ich in der Welt von XSS und alle sicherheitsrelevanten Bedenken.
Verwenden von Javascript Ich habe 'Zurück' und 'Vorwärts' Schaltflächen mit dem Verlaufsobjekt von Links in der Eltern hinzugefügt (wenn ein Benutzer eine Suche die Ergebnisse in den Iframe laden, so ermöglicht die Zurück-Taste ihnen zu gehen zurück zum primären Standort, nachdem sie die Suchresultate benutzt/durchgesehen haben).
Gibt es eine Möglichkeit, den aktuellen Ort innerhalb des Iframe aufzurufen und die Seite (jetzt ohne Rahmen) an diesen Ort zu laden?
Ich habe PHP $ GLOBAL/$ _ SERVER-Variablen überprüft, um zu sehen, ob ich Glück haben könnte. Ich verstehe, dass es Sicherheitsbedenken gibt, aber ich sehe nicht, wie diese bestimmte Funktion anders als history.back() sein würde, wo der Browser den Anruf selbst macht, ohne meinen Elternrahmen zu "benachrichtigen".
Ich weiß, ich kann den src-Standort aus dem iframe selbst abrufen, aber natürlich setzt der Benutzer nicht über diese Seite navigieren, und wenn sie es tun sie nichts dagegen, ihren aktuellen Standort verloren und zurückgeleitet zu Seite anfänglich vom Rahmen aufgerufen (... ah ...).
Es scheint fast wie Frames sind entworfen, um Fenster zu stehlen mit keine Mittel für anmutig "ausbrechen" und Integrität der Benutzersitzung zu erhalten.
Kein Wunder, dass Menschen sie hassen. :)
ich bin nicht sicher, ob ich das richtig verstanden. Sie sind in der Steuerung des Hauptdokumentes, Sie Anzeige externe Dokumente in einem iframe, und Sie möchten, dass das Hauptdokument den Inhalt des iframes als neues Hauptdokument lädt, und Sie haben keine Zusammenarbeit mit den Dokumenten in den iFrames? – Jim