我遇到了一個奇怪的問題,試圖調試一個由幾個月前離開公司的人開發的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上,但它沒有提及什麼類型的腳本將被阻止(因爲並非所有腳本都被阻止,我迷路了),幾乎在互聯網上的每一個結果都解釋瞭如何禁用增強的安全性,但不是它的功能。
任何暗示表示讚賞...:\
現在嘗試,仍然無法正常工作。 :\(順便說一句,用開發工具也檢查過,頁面是在IE8標準模式下渲染的。)我回頭敲牆頭。 – Albireo 2011-05-03 14:01:10