我正在使用帶有onchange事件的文件上傳輸入,該事件提交表單並關閉頁面。javascript submit()後跟self.close()不起作用
onchange= "document.forms[0].submit();self.close();"
如果我使用時只需提交()函數上傳作品,但如果我包括self.close()函數上傳從未發生過。
任何想法這是什麼問題?
我正在使用帶有onchange事件的文件上傳輸入,該事件提交表單並關閉頁面。javascript submit()後跟self.close()不起作用
onchange= "document.forms[0].submit();self.close();"
如果我使用時只需提交()函數上傳作品,但如果我包括self.close()函數上傳從未發生過。
任何想法這是什麼問題?
你我的朋友正在處理競爭條件。窗口關閉之前窗體會熄滅嗎?當響應從服務器返回時,您需要關閉窗口。
您可以通過添加另一個電話onSubmit然後調用self.close()方法來解決此問題。將此添加到頁面或正文加載的提交條件上,您應該很好。
這是因爲瀏覽器發出的請求異步運行,並且不能保證在調用close
方法時表單將成功提交。
使用onSubmit
事件。
只是一個澄清快速。你是怎麼打開窗戶的?是否與'window.open'並且它實際上關閉了窗口? –
它是有道理的。爲什麼瀏覽器會在不存在的窗口中繼續處理表單? – pawel
在調用'self.close()'之前,您需要等待上傳完成,否則在上載完成之前關閉頁面 - 從而阻止上傳完成。 –