Windows的增强安全性可以打破jQueryUI的datepicker吗?

时间:2011-05-03 13:09:41

标签: javascript windows security

我在尝试调试由几个月前离开公司的人开发的ASP.NET + jQuery + jQueryUI Web应用程序时遇到了一个奇怪的问题。

问题:

开发我们使用的是Windows Server 2008 R2虚拟机或Windows Server 2003 R2虚拟机,它们都是由所有开发人员通过终端服务共享的,并由我们的IT部门控制。

它们都附带Internet Explorer 8并且具有增强的安全性。

当我尝试调试应用程序或尝试在测试站点上导航时,某些JavaScripts函数无效。

其中一个是jQueryUI的datepicker:日历打开,但是当我点击日期时没有任何事情发生。

我已经在Internet Explorer的可信站点中添加了http://localhost和测试站点,但无济于事;如果我从受信任的站点列表中删除它们(因此它们在Internet区域中运行),则不会执行任何JavaScript。

问题:

这个问题可能是由Windows增强的安全性造成的吗?

如果没有,我可以尝试缩小罪魁祸首?

我知道IT团队应该解决这类问题,但他们并不关心它,因为我无法重现只在Internet Explorer中发生的一些错误(这个JavaScript)阻止事情阻止我甚至到达bug),我无法回复我们的用户“抱歉,但我们不会解决问题,因为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上找到了this link,但它没有提到脚本将被阻止的类型(因为并非所有脚本都被阻止,我是几乎所有在互联网上的结果都解释了如何禁用增强的安全性,但不能解释它的作用。

任何提示都表示赞赏......:\

2 个答案:

答案 0 :(得分:3)

如果禁用IE增强安全性,则此问题就会消失。我不确定这是否是一个有效的解决方法,但也许它可以提供线索。

要禁用,请打开服务器管理器。单击“配置IE ESC”并为管理员或用户禁用“增强安全性”。

答案 1 :(得分:0)

黑暗中的刺可能但是我遇到了类似的问题,其中网站在本地Intranet区域中呈现,因此在IE7兼容模式下自动呈现。这似乎导致jquery的浏览器检测错误。将以下元标记添加到head部分修复它。

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