2011-05-03 38 views
4

我遇到了一個奇怪的問題,試圖調試一個由幾個月前離開公司的人開發的ASP.NET + jQuery + jQueryUI Web應用程序。Windows的增強安全性能否打破jQueryUI的日期選擇器?

問題:

爲了發展,我們使用Windows Server 2008 R2的虛擬機或Windows Server 2003 R2的虛擬機,他們都通過終端服務共享所有的開發人員和我們的IT部門控制。

他們都帶有Internet Explorer 8並且具有增強的安全性。

當我嘗試調試應用程序,或嘗試在測試網站上導航它時,某些JavaScript函數不起作用。

其中之一是jQueryUI的datepicker:日曆打開,但是當我點擊日期時沒有任何反應。

我已經在Internet Explorer的受信任站點中同時添加了http://localhost和測試站點,但無濟於事;如果我將它們從可信站點列表中刪除(因此它們在Internet區域中運行),則不會執行JavaScript。

問題:

難道這問題,通過Windows的增強的安全性造成的?

如果不是,我可以嘗試縮小罪魁禍首的範圍?

我知道這類問題應該由IT團隊解決,但他們並不關心它,而且我被卡住了,因爲我無法再現僅在Internet Explorer中發生的一些錯誤(這是JavaScript攔截的事情阻止我甚至到達錯誤),我不能回覆我們的用戶「抱歉,但我們不會解決問題,因爲IT不關心我們」。

是的,我可以通過我的經理升級這個問題,但是你知道官僚是如何的,它需要幾天甚至幾周的電子郵件來完成這個排序。所以我想如果我能縮小這個問題的範圍,也許我可以爲自己省下一些空洞的爭論。

一個例子:

我做了一個簡單的HTML頁面來重現問題:

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="jquery-ui.css" rel="stylesheet" /> 
     <script src="jquery.min.js"></script> 
     <script src="jquery-ui.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $("#dynamicText").text("Some dynamic text."); // <-- Works. 
       $("#date").datepicker(); // <-- Does NOT work. 
       $("#button").button(); // <-- Works. 
       $("#button").click(function (event) { 
        event.preventDefault(); // <-- Works. 
        alert("You clicked the button."); // <-- Works. 
       }); 
      }); 
     </script> 
     <title>Test</title> 
    </head> 
    <body> 
     <h1>Test</h1> 
     <table> 
      <thead> 
       <tr> 
        <th>Function</th> 
        <th>Demo</th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr> 
        <td>Dynamic text:</td> 
        <td id="dynamicText"></td> 
       </tr> 
       <tr> 
        <td>Date picker:</td> 
        <td><input id="date" type="text" /></td> 
       </tr> 
       <tr> 
        <td>Button:</td> 
        <td><a id="button" href="https://encrypted.google.com/">Click me</a></td> 
       </tr> 
      </tbody> 
     </table> 
    </body> 
</html> 

更新:

我忘了提,我發現this link在TechNet上,但它沒有提及什麼類型的腳本將被阻止(因爲並非所有腳本都被阻止,我迷路了),幾乎在互聯網上的每一個結果都解釋瞭如何禁用增強的安全性,但不是它的功能。

任何暗示表示讚賞...:\

回答

0

在黑暗中也許刺,但我已經在網站正在呈現在本地Intranet區域,因此在IE7兼容模式下自動呈現類似的問題。這似乎在jQuery的瀏覽器檢測中導致錯誤。將以下元標記添加到頭部分修復了它。

<meta http-equiv="X-UA-Compatible" content="IE=8" />

+0

現在嘗試,仍然無法正常工作。 :\(順便說一句,用開發工具也檢查過,頁面是在IE8標準模式下渲染的。)我回頭敲牆頭。 – Albireo 2011-05-03 14:01:10

2

如果禁用IE增強的安全性,這個問題就會消失。我不確定這是否是一種有效的解決方法,但也許它可以提供線索。

要禁用,請打開服務器管理器。單擊配置IE ESC並禁用管理員或用戶的增強安全性。