2011-03-29 93 views
0

可能重複做工精細:
JavaScript works under Firefox but does not work under IE的Javascript不是在IE瀏覽器的工作,但對於Firefox或Chrome

下面的腳本沒有爲IE工作。不要擔心它是否安全,我只是想測試這個JavaScript,但我不知道爲什麼它不適用於IE。當我在IE上打開它時,它會將其視爲錯誤的密碼並立即轉到Google頁面。沒有執行輸入密碼的提示。但是,對於其他瀏覽器來說,它工作正常。我已經嘗試了許多不同版本的IE並禁用了塊附加組件,但仍然沒有運氣讓它工作。

<HEAD> 
<SCRIPT language="JavaScript"> 
<!--hide 

var password; 

var pass1="cool"; 

password=prompt('Please enter your password to view this page!',' '); 

if (password==pass1) 
    alert('Password Correct! Click OK to enter!'); 
else 
    { 
    window.location="http://www.google.com/"; 
    } 

//--> 
</SCRIPT> 
</HEAD> 
+0

你確定你是不是刪除使用IE當你在提示具有默認的空間? – Oded 2011-03-29 20:47:58

+0

在FF,Chrome和IE8中似乎適合我。 IE只是抱怨一些安全的東西,但如果允許,工作正常。 – Czechnology 2011-03-29 20:48:10

+2

這只是這個問題的一個變種:http://stackoverflow.com/questions/3553143/javascript-under-firefox-but-does-not-work-under-ie – David 2011-03-29 20:51:01

回答

1

適用於IE6和IE8中的我,雖然我確實收到安全警告,但我必須點擊。

如果添加行

window.alert('received password: ' + password); 

直屬提示行,你怎麼看作爲密碼?這是否揭示了這個問題?

此外,你在哪裏運行(文件/網絡服務器),以及什麼是Internet Explorer報告作爲安全區域(在瀏覽器底部的欄上,朝右 - 可能表示某些行Internet或本地Intranet或者其他的東西)?

[編輯 - 響應來自OP評論]

你剛剛發現你的服務器上運行此。在Windows 2008服務器上(可能是2003 - 不記得),Internet Explorer在Internet Explorer增強安全模式下運行(它可能會在啓動時在其「主頁」中說明)。在這種模式下,安全性非常嚴格,它不會運行Javascript和其他任何東西,除了受信任的站點,它甚至不會警告你。這是爲了限制您偶然通過網頁瀏覽形式將病毒,木馬或其他任何內容引入服務器的可能性。你現在描述的行爲使得總共有的意義。

不幸的是,我不認爲你可以將本地文件添加到可信站點列表(工具 - > Internet選項 - >安全),所以沒有簡單的方法來允許這個文件。

您的選擇是:

  • 禁用Internet Explorer增強安全性。可能不推薦,除非您只爲非特權用戶進行。
  • 通過您的服務器上的Web服務器,而不是直接從文件服務此文件 - 然後您可以通過http調試它,您可以可以添加到受信任的站點列表。
  • 不要在服務器上嘗試調試這些東西(至少,不在服務器上的IE中)。
+0

試圖添加你的腳本,但沒有什麼不同。在我的IE8上,它只是沒有機會輸入密碼,並直接進入錯誤的密碼頁面 - google.com。請嘗試其他任何事情嗎? – xuanyinwen 2011-03-30 00:49:57

+0

所以你沒有收到彈出窗口說「收到密碼」?我的直覺是這可能是兩件事之一。有一些IE阻止程序或安全限制,*或*頁面上存在JavaScript錯誤。您是發佈整個網頁的代碼,還是來自網頁的摘錄?其次,你在哪裏運行它 - 它是在本地機器上,在網絡驅動器上的文件還是由網絡服務器提供? – 2011-03-30 08:04:03

+0

HI Rob,不,它沒有機會在我的IE8上輸入或顯示收到的密碼。它只是去錯誤的密碼條件下的谷歌頁面。我從一個Web服務器運行它。當我從本地機器運行它時,它看起來工作正常。請檢查鏈接:http://www.xuanyinwen.com/test3.html。非常感謝 – xuanyinwen 2011-03-31 00:37:09

0

谷歌IE7 prompt bug這可能是你正在經歷的。

+0

我可以更改我的IE7的設置,但是如何更改我的網頁訪問者的設置呢?任何想法我可以嘗試什麼其他方式? – xuanyinwen 2011-04-04 01:31:48

1

看看這個頁面:

http://www.hunlock.com/blogs/Working_around_IE7s_prompt_bug,_er_feature

編輯:如果沒有幫助,看看jQuery的。有一個插件,專門更換提示,避免IE7的問題(所以他們說,至少):

http://abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/

jQuery將解決其中很多的你的文章是一個例子,跨瀏覽器的兼容性問題。我自己抵制了一段時間,但現在我很開心我開始使用它。

編輯2:這將在IE7中工作(沒有提示,雖然)

<html> 
    <head> 
     <script type="text/javascript"> 
     function checkPasswd() { 
     var passwd = document.getElementById ("passwd"); 
     if (passwd.value === "cool1") 
      alert('Password Correct! Click OK to enter!'); 
     else 
      window.location="http://www.google.com/"; 
    } 
    </script> 
    <body> 
     <form> 
      <input name="passwd" id="passwd" type="password"/> 
      <input name="submit" type="button" value="submit" onclick="checkPasswd();"/> 
     </form> 
    </body> 
</html> 
+1

+1 - 或者如果只是爲自己的機器:http://geekswithblogs.net/bbastiaensen/archive/2009/03/19/using-javascript-prompt-in-ie7.aspx - 公共網站應該使用HTML表單真的... – 2011-03-29 20:55:02

+1

@Lee不錯的鏈接,但如果它是他的機器,他應該儘快溝通ie7;) – Aleadam 2011-03-29 20:57:26

+0

您好,非常感謝您提供的信息,您有任何可以在IE7 +上正常工作的例子嗎?我真的不知道如何使它在IE中工作,因爲無論如何改變腳本,提示信息永遠不會在IE中彈出。非常感謝! – xuanyinwen 2011-03-30 00:52:09

相關問題