Ich habe einen Iframe innerhalb eines jQuery-Registerkartenlayouts. Ich verwende den iframe, um ein Bild hochzuladen, um einen AJAX-Datei-Upload zu simulieren. Es scheint immer, wenn meine Iframe Postbacks, führt die $ page (Dokument) .ready der übergeordneten Seite, um auszuführen, die aktuelle Registerkarte zurückgesetzt, auf der ich positioniert bin.Verhindern, dass Iframe-Postback die 'ready' -Funktion von jQuery für das übergeordnete Element aufruft
Haben Sie Ideen, wie Sie das verhindern können?
function uploadDone() {
var data = eval("("+ $('#upload_target').contents().find('body').html() +")");
if(data.success) {
$('#upload_summary').append("<img src='" + data.full_path + "' />");
$('#upload_summary').append("<br />Size: " + data.file_size + " KB");
}
else if(data.failure) { //Upload failed - show user the reason.
alert("Upload Failed: " + data.failure);
}
}
$(document).ready(function() {
$('#image_uploader').submit(function() {
if($.browser.safari || $.browser.opera) {
$('#upload_target').load(function(){
setTimeout(uploadDone, 0);
});
var iframe = document.getElementById('upload_target');
var iSource = iframe.src;
iframe.src = '';
iframe.src = iSource;
} else {
$('#upload_target').load(uploadDone);
}
});
});
Konnten Sie Ihren Code bekannt geben? Können Sie nicht versuchen, ein Flag zu setzen, wenn Sie ein Formular in iFrame senden und dieses Flag in document.ready Ihrer übergeordneten Seite überprüfen? – SolutionYogi
Ist es normales Verhalten, dass ein Postback in einem Iframe ein Postback auf der übergeordneten Seite verursacht? – cweston