2012-04-17 42 views
7

Tôi đang gặp khó khăn trong việc tìm ra giải pháp cho vấn đề của mình. Dưới đây là đoạn mã:lời nhắc() với Internet Explorer 8

var ans = prompt("Mot de passe", ''); 
if (ans != '' && ans != null) 
    __doPostBack('__Page', ans); 
else 
    window.location = "../Erreurs/NotAuthorized.aspx"; 

Mã này hoạt động thực sự tuyệt vời với Internet Explorer 9. Vì vậy, khách hàng của tôi chỉ làm việc với Internet Explorer 8 nên tôi đã thử nghiệm nó với ieTester trong IE8. Nhưng vấn đề là lời nhắc không hiển thị và nó tự động chuyển hướng vì đầu vào có chuỗi trống ('').

Vậy làm cách nào để khắc phục sự cố này để hoạt động với Internet Explorer 8?

+0

có vấn đề gì nếu bạn thêm một cái gì đó để tham số thứ hai? –

+0

Nếu tôi thêm (ví dụ) 'test' trong tham số thứ hai, dấu nhắc sẽ không hiển thị. Là một lỗi được biết đến với ieTester hoặc nó chỉ không hoạt động với một IE8 thực? – Soader03

Trả lời

3

Nó trông giống như một điều an ninh cụ thể để tức là-8 cho chắc chắn, tôi không có các phiên bản khác để kiểm tra. Gọi prompt() sẽ cảnh báo về một cửa sổ theo kịch bản yêu cầu cung cấp thông tin. Tôi có thể nhấp để cho phép và sau khi làm mới trang, hộp nhắc xuất hiện như mong đợi.

Nếu bạn định sử dụng prompt(), có thể bạn sẽ phải quy định rằng cài đặt bảo mật trên máy đích được định cấu hình để cho phép.

1

Từ báo cáo này có vẻ như đó là lỗi đã biết trong IETester?

http://www.my-debugbar.com/forum/t294-Javascript-Alerts.html

+1

Tôi nghĩ rằng vấn đề là lời nhắc không hiển thị, không phải là câu lệnh if sau đây. –

+0

Có, chỉ thấy chuỗi ... Nhưng tôi không thể làm việc với IE7 hoặc 6 không. – Soader03

7

IE có cài đặt trong Tùy chọn Internet để cho phép hoặc từ chối prompt().

IE prompt setting http://adamhaskell.net/img/ie-prompt.png

Theo mặc định trong IE8, cài đặt này tắt. Do đó, các cuộc gọi tới prompt() bị bỏ qua và "" được trả lại bởi chúng.

Bạn không nên sử dụng prompt(). Sử dụng biểu mẫu.

2

Trang web dành cho nhà phát triển của Microsoft cho chúng tôi biết rằng "prompt()" không được dùng nữa và bây giờ thường bị khóa vì lý do bảo mật: "Theo mặc định, phương pháp này bị chặn bởi thanh thông tin trong vùng Internet. các cuộc tấn công giả mạo. "

Xem http://msdn.microsoft.com/en-us/library/ms536673.aspx

Các vấn đề liên quan