簡體   English   中英

Windows 的增強安全性能否破壞 jQueryUI 的日期選擇器?

[英]Can Windows' enhanced security break jQueryUI's datepicker?

我在嘗試調試幾個月前離開公司的人開發的 ASP.NET + jQuery + jQueryUI web 應用程序時遇到了一個奇怪的問題。

問題:

我們使用 Windows Server 2008 R2 虛擬機或 Windows Server 2003 R2 虛擬機進行開發,它們都由所有開發人員通過終端服務共享,並由我們的 IT 部門控制。

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

當我嘗試調試應用程序或嘗試在測試站點上導航它時,某些 JavaScripts function 無法正常工作。

其中之一是 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>

更新:

我忘了提到我在 TechNet 上找到了這個鏈接,但是它沒有提到什么類型的腳本會被阻止(因為不是所有的腳本都被阻止,我迷路了),互聯網上幾乎所有的結果都向你解釋了如何禁用增強的安全性,但不是它的作用。

任何提示表示贊賞...:\

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

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

可能是在黑暗中刺傷,但我遇到了類似的問題,即站點在本地 Intranet 區域中呈現,因此在 IE7 兼容模式下自動呈現。 這似乎導致 jquery 的瀏覽器檢測出錯。 將以下元標記添加到 head 部分修復了它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM