我正在實現一個使用iframe的ajax圖片上傳功能。 我搜索過,發現了類似的問題,但我已經嘗試過,他們沒有爲我工作。 我的AJAX圖片上傳的工作原理如下:動態創建Iframe不可訪問
- 用戶點擊「添加圖片」按鈕,動態創建一個新的對話框
$('#imgdialog')
。該對話框只是一個包含動態創建表單的div,其中包含$('#imgform')
和一個iframe,$('#upload_target')
。 - 該表格允許用戶通過ajax uplaod選擇一個文件,其中應該顯示在iframe中。
但是這不會發生。我正在學習本教程:http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html
我的實現和教程中的主要區別在於,在我的實現中,表單和iframe不是在頁面加載時開始,它們是在當用戶點擊一個按鈕時飛行。
我知道我的PHP代碼工作正常,因爲當我使用FireBug時,我可以看到所需的POST和RESPONSE。但Iframe沒有被填充,儘管在FireBug中我可以看到它存在於HTML中,除了它是空的。
創建的動態表單和iframe的代碼是:
imgform = document.createElement('form');
imgform.id = 'imgform';
imgform.method='post';
imgform.enctype='multipart/form-data';
imgform.action ='upload_1.php';
imgform.target = 'upload_target';
imgform.onsubmit='showUploadedItem();';
$('#imgform').append("Select image:<br /><input type='file' id='imgfile' />");
$('#imgdialog').append("<iframe id='upload_target' name='upload_target' style='border:1px solid gray;' src='#'></iframe>");
$('#upload_target').bind('load', function() { // doesn't work with .live either
$(this).contents().find("body").html('greetings from the iframe !');
alert("loaded");
});
在$('#imgform')
的,的onsubmit功能,我還包括以下行:
if($('#upload_target').length > 0){ alert("it's there"); } else {alert ("not there"); }
而且我得到了「不存在」。
如何訪問iframe?
使用.live代替.bind –
我都試過,沒什麼區別調用它。 – user961627
結帳我的答案,這是否解決了它? – Montagist