AJAX期货拖放,Chrome的潜在漏洞

时间:2011-07-14 09:52:16

标签: ajax google-chrome drag-and-drop

Chrome中的AJAX期货拖放功能可能存在错误:

<head runat="server">
    <title></title>
    <script type="text/javascript">

        function pageLoad() {
            var source1 = new Custom.UI.ColorDragSourceBehavior($get("1"), "1");
            source1.initialize();
            var source2 = new Custom.UI.ColorDragSourceBehavior($get("2"), "2");
            source2.initialize();
      }

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="width:200%;">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Scripts>
                <asp:ScriptReference Name="PreviewScript.js" Assembly="Microsoft.Web.Preview" />
                <asp:ScriptReference Name="PreviewDragDrop.js" Assembly="Microsoft.Web.Preview" />
                <asp:ScriptReference Path="~/Scripts/ColorDragDrop.js" />
            </Scripts>
        </asp:ScriptManager>
        <div id="1" style="float:left; width:30px; height:30px; background-color:Blue;">Left</div>
        <div id="2" style="float:right;width:30px; height:30px; background-color:Blue;">Right</div>
    </div>    
    </form>
</body>
</html>

ColorDragDrop.js可用here

向右滚动并单击右侧分割,窗口自动向左滚动。

网上有几个提到这个,但没有解决方案,所以我想我会问这里。我正处于紧迫的截止日期之前,宁愿不必使用jQuery或类似方法重新实现拖放操作,所以任何帮助都会感激不尽。

1 个答案:

答案 0 :(得分:0)

我在这里找到了3行黑客:

http://www.targetprocess.com/agileproductblog/2009/03/aspnet-20-ajax-safari-and-scroll-offset.html

if (Sys.Browser.agent === Sys.Browser.Safari) {
    Sys.Preview.UI.DragDropManager._getInstance().getScrollOffset =
                Sys.Preview.UI.IEDragDropManager.prototype.getScrollOffset
    Sys.Preview.UI.DragDropManager._getInstance()._autoScroll = function() { }
}

适用于safari和chrome。