javascript - Kan Windows 'forbedrede sikkerhedsbrud jQueryUI's datepicker?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et underligt problem at forsøge at fejle en ASP.NET + jQuery + jQueryUI webapplikation udviklet af en person, der forlod virksomheden for et par måneder siden.


Problemet:


For at udvikle bruger vi en virtuel maskine af Windows Server 2008 R2 eller en virtuel maskine af Windows Server 2003 R2, som begge deles via Terminal Services af alle udviklere og kontrolleres af vores it-afdeling.


Begge kommer med Internet Explorer 8 og har forbedret sikkerhed på.


Når jeg forsøger at debugge programmet, eller forsøge at navigere det på testwebstedet, virker visse JavaScripts-funktioner ikke.


En af dem er jQueryUIs datepicker: Kalenderen åbnes, men når jeg klikker på en dato, sker der ikke noget.


Jeg har allerede tilføjet både http://localhost og testwebstedet i Internet Explorer 's pålidelige websteder, men uden brug, hvis jeg fjerner dem fra listen over betroede websteder (så de køres i internetzonen), bliver der ikke udført JavaScript.


Spørgsmål:


Kan disse problemer skyldes Windows 'forbedret sikkerhed?


Hvis ikke, hvad kan jeg forsøge at indsnævre synderen?


Jeg ved, at denne slags problem skal behandles af it-teamet, men de bekymrer sig ikke meget om det, og jeg er fast, da jeg ikke kan reproducere et par fejl, der kun sker i Internet Explorer (denne JavaScript-blokering er forhindre mig i at nå fejlen), og jeg kan ikke svare på vores bruger 'undskyld, men vi vandt' ikke løse problemet ', fordi det ikke er ligeglad med os'.


Ja, jeg kan eskalere dette problem med min manager, men du ved, hvordan bureaukrati er, det ville tage dage eller endda uger med e-mails for at få det sorteret. Så jeg tænkte, at hvis jeg kan indsnævre problemet måske kan jeg redde mig selv en tom krangling.


Et eksempel:


Jeg har lavet en simpel HTML-side til at reproducere problemet:


<!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>


Opdatering:


Jeg har glemt at nævne, at jeg har fundet dette link på TechNet, men det nævner ikke hvilken type af scripts der vil blive blokeret (da ikke alle er blokerede, jeg er tabt), næsten hver eneste gang Resultatet på internettet forklarer dig, hvordan du deaktiverer forbedret sikkerhed, men ikke hvad det gør. [4]


Enhver antydning er værdsat ...: \

Bedste reference


Hvis du deaktiverer IE Enhanced Security, går dette problem væk. Jeg er ikke sikker på, om dette er en gyldig løsning, men måske kan det give et fingerpeg.


For at deaktivere skal du åbne Server Manager. Klik på Konfigurer IE ESC og deaktiveret forbedret sikkerhed for enten administratorer eller brugere.

Andre referencer 1


Et stik i mørket måske, men jeg har haft lignende problemer, hvor webstedet blev gengivet i den lokale intranetzone og derfor automatisk gengivet i IE7-kompatibilitetsmodus. Dette syntes at forårsage en fejl i jquery's browser-detektion. Tilføjelse af følgende metatag til hovedafsnittet fikseret det.


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