我們希望減少用戶在我們網站上傳文件所需的步驟數量;所以我們使用jQuery打開和回發文件使用下面的標記(簡化):在IE9上觸發「SCRIPT5訪問被拒絕」錯誤時發生。onclick()ongle
<a onclick="$('#uplRegistrationImage').click();">
Change profile picture
</a>
<!-- Hidden to keep the UI clean -->
<asp:FileUpload ID="uplRegistrationImage"
runat="server"
ClientIDMode="static"
Style="display:none"
onchange="$('#btnSubmitImage').click();" />
<asp:Button runat="server"
ID="btnSubmitImage"
ClientIDMode="static"
Style="display:none"
OnClick="btnSubmitImage_OnClick"
UseSubmitBehavior="False" />
這在Firefox和Chrome中絕對正常;單擊鏈接時打開文件對話框,選擇文件時觸發回發。
但是在IE9中文件上傳已經加載並且用戶選擇了文件之後;因爲OnChange工作,我得到一個「SCRIPT5訪問被拒絕」的錯誤。我試着設置一個任意超時,設置間隔來檢查文件是否無效。
還有一些與此有關的其他問題;然而,沒有一個看起來有正確的答案(一個說,設置文件對話框是透明的,並懸停在按鈕後面!)
有沒有其他人解決這個問題?或者是否爲IE用戶提供按鈕是絕對必要的?
你爲什麼不只是發送的onclick您相同的功能的$(「#uplRegistrationImage」)的onclick? –
onclick 打開文件對話框;當選擇一個文件時,應該觸發一個回傳。 –
我在Safari中遇到了同樣的問題,所以我想IE9採取了與click()實際上需要用戶單擊相同的立場,從安全的角度來看,您大概可以理解。 – samazi