2012-05-07 79 views
3

我有一個窗體,它內部的iframe與輸入類型文件與一個onchange事件,提交表單,每當輸入被修改,然後我得到一個錯誤在IE瀏覽器只能在其他瀏覽器。JS Submit()訪問被拒絕IFrame IE

例如(簡體版)

<form id="form1"> 
<input type="file" id="_file" onchange="document.forms[0].submit();$('#form1').hide()" /> 
<input type="button" onclick="$('#_file').click();" /> 
</form> 

那麼IE 8給出了這樣的錯誤:

SCRIPT5: Access is denied. 

我相信這是與IE認爲它的安全風險來自這不是一個事件提交的事實做或者它可能與它發生在iframe中的事實有關。任何想法如何解決這個問題?

編輯

它看起來像這個問題可能與事實輸入辦[類型:文件]是隱藏的,以及它有一個小的寬度和不透明度:0。使它顯示並提交一個提交按鈕後,它的工作原理,但我需要它的工作沒有輸入[類型:文件]顯示和沒有提交按鈕。然而,在輸入[type:file]中顯示並在onchange中提交的方式嘗試它仍然不起作用。

+0

這是一篇文章,應該有所幫助 - http://stackoverflow.com/questions/1886547/access-is-denied-javascript-error-when-trying-to-access-the-document-object-of –

+0

I沒有看到我的問題的相關性,我沒有動態創建Iframe。 – John

+0

無論是否創建iFrame,您都會收到相同的錯誤。什麼是你的iFrame的document.domain?它是否與父文檔匹配? –

回答

4

似乎問題是,當您以編程方式設置和提交文件輸入時,IE不喜歡它。現在找到解決這個問題的辦法。當用戶在IE中時,我選擇使用Jquery uploadify作爲後備。這會對閃存產生不必要的依賴,但這是我能想到的最佳選擇。