so rufen Sie Fenster onunload-Ereignis für die iFrame-Taste, klicken Sie auf die übergeordnete Seite und der iFrame befindet sich in einer anderen domain
Ich habe die Schaltfläche, öffnet sich ein iFrame (die sich in der Domäne sagen, 'xyz') das iFrame lädt die Seite, welche sich in einer anderen Domäne (sagen wir 'lmn')
$("#templateSelectionFrame").get(0).contentWindow.location.href = url;
url von einer anderen Domäne (ich kommunizieren in verschiedenen Domänen mit Jquery 'POSTMESSAGE')
wenn Benutzer auf die Schaltfläche Abbrechen iFrame muss ich schließen Sie die iFrame-aber zuvor ist es nötig zu zeigen, dass Sie die Seite verlassen Nachricht (dh. bleiben Sie auf der Seite /leave Seite - das ist alreday rief window.onbeforeunload
).
var warnNavigateAway = true;
window.onbeforeunload = confirmBrowseAway;
//Called then user leave window without saving content.
function confirmBrowseAway() {
if (warnNavigateAway) {
return "If you leave this page, your work will be lost ...";
}
}
function documentSaved() {
warnNavigateAway = false;
}
function documentDirty() {
warnNavigateAway = true;
}
<div id="bottomBar">
<button class="cancelBtn" onclick="GoBack()">Cancel</button>
</div>
wie rufe ich die gleiche Seite verlassen Nachricht, so dass ich in der Nähe der iFrame, wenn der Benutzer klickt verlassen Seite angezeigt.
function GoBack()
{
var operationType = '<%: (Model.OperationType)%>';
if (operationType == "Create")
{
window.history.back();
}
else {
$.postMessage(
'closeIFrame',
parentUrl,
parent
);
}
}
(navigation: button Abbrechen -> Seite verlassen-Meldung -> wenn(Aufenthalt auf der Seite dann 'nichts zu tun') if(verlassen der Seite ) -> schließen Sie das iFrame)
InformationsquelleAutor Uttam | 2012-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Reinem javascript
Wie es scheint, haben Sie Kontrolle über den code in beiden Domänen - obwohl Sie sich auf unterschiedlichen hosts - Sie sollten in der Lage sein, die folgenden innerhalb des iframe:
und die folgenden in der host-Rahmen:
(Der obige code wurde manuell eingegeben, Fehler können möglich sein, es ist gemeint als ein anschauliches Beispiel)
Mit den oben genannten müssen Sie ändern Sie Ihre markup-etwas, für das iframe, und für die Schaltfläche.
und
jQuery
Weil ich nicht zu erkennen, Sie wurden mit jQuery hier ist ein jQuery-version 🙂
iframe:
in der host:
kein problem 🙂 Sie ziemlich viel hatte die Idee schon, es wurde nur subtile Veränderungen, um es arbeiten.
InformationsquelleAutor Pebbl