prompt() with Internet Explorer 8

孤街醉人 提交于 2019-12-10 12:57:08

问题


I am having a hard time figuring out a solution for my problem. Here's a code snippet:

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

This code works really great with Internet Explorer 9. But my client is exclusively working with Internet Explorer 8 so I tested it with ieTester in IE8. But the problem is that the prompt doesn't show and it automatically redirect because the input had an empty string ('').

So how do I fix this to work with Internet Explorer 8?


回答1:


It looks like a security thing specific to IE- 8 for sure, I don't have other versions to test. Calling prompt() produces a warning about a scripted window asking for information. I can click to allow and after refreshing the page, the prompt box appears as expected.

If you are going to insist on using prompt(), you will probably have to stipulate that security settings on the target machines are configured to allow it.




回答2:


IE has an setting in Internet Options to allow or deny prompt().


(source: adamhaskell.net)

By default in IE8, this setting is off. Consequently, calls to prompt() are ignored and "" is returned by them.

You shouldn't use prompt() anyway. Use a form.




回答3:


Microsoft developer website tells us that "prompt()" is deprecated and now normally blocked for security reasons: "By default, this method is blocked by the information bar in the Internet zone. This helps prevent malicious sites from initiating spoofing attacks. "

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




回答4:


From this report it looks like it's a known bug in IETester?

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



来源:https://stackoverflow.com/questions/10197147/prompt-with-internet-explorer-8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!