Chúng tôi muốn giảm số bước cần thiết để người dùng tải lên tệp trên trang web của chúng tôi; vì vậy chúng tôi đang sử dụng jQuery để mở và đăng lại các tệp bằng cách sử dụng đánh dấu bên dưới (đã đơn giản hóa):Lỗi "Truy cập SCRIPT5 bị từ chối" trên IE9 khi kích hoạt .click() từ onchange
<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" />
Điều này hoàn toàn tốt trong Firefox và Chrome; mở hộp thoại tệp khi liên kết được nhấp và kích hoạt đăng lại khi tệp được chọn.
Tuy nhiên trong IE9 sau khi tải lên tệp đã tải và người dùng đã chọn tệp; insteaed của OnChange làm việc tôi nhận được một "SCRIPT5 Access bị từ chối" lỗi. Tôi đã thử đặt thời gian chờ tùy ý, thiết lập khoảng thời gian để kiểm tra xem tệp có được cung cấp không có lịch phát sóng hay không.
Có một số câu hỏi khác liên quan đến vấn đề này; tuy nhiên không ai có câu trả lời hợp lý (Một người nói đặt hộp thoại tệp thành trong suốt và di chuột sau một nút!)
Có ai khác giải quyết vấn đề này không? Hoặc là nó hoàn toàn cần thiết mà tôi cung cấp một nút cho người dùng IE?
Tại sao bạn không chỉ gửi onclick trên của bạn với chức năng tương tự như onclick của $ ('# uplRegistrationImage')? –
Onclick mở ra hộp thoại tệp; sẽ kích hoạt một postback bất cứ khi nào một tập tin được chọn. –
Tôi đã gặp vấn đề tương tự trong Safari, vì vậy tôi đoán IE9 đã thực hiện cùng một lập trường mà click() thực sự yêu cầu người dùng nhấp chuột, từ quan điểm bảo mật, bạn có thể hiểu được. – samazi