2012-04-17 102 views
7

我很難找出解決方案來解決我的問題。這裏有一個代碼片段:提示()與Internet Explorer 8

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

此代碼真正偉大的作品與Internet Explorer 9,但我的客戶只與Internet Explorer 8的,所以我在用IE8測試ieTester它的工作。但問題是,提示不顯示,它會自動重定向,因爲輸入有一個空字符串('')。

那麼,如何解決這個問題以使用Internet Explorer 8?

+0

不要緊,如果你添加一些東西到第二個參數? – 2012-04-17 18:55:20

+0

如果我在第二個參數中添加(例如)'test',則提示不會顯示出來。是ieTester的一個已知的錯誤,或者它只是不適用於真正的IE8? – Soader03 2012-04-17 18:58:03

回答

3

看起來肯定具體到IE-8安全的事情,我沒有其他的版本進行測試。調用prompt()會產生有關腳本窗口的警告信息。我可以單擊以允許刷新頁面後,按預期方式出現提示框。

如果您要堅持使用prompt(),您可能必須規定目標機器上的安全設置已配置爲允許。

2

微軟開發者網站告訴我們,「prompt()」已被棄用,並且由於安全原因現在通常被阻止: 「默認情況下,此方法被Internet區域中的信息欄阻止,這有助於防止惡意網站啓動欺騙攻擊。「

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