2

asp.net 4、c#、jQuery 1.5.1、および Jcrop-0.9.8 を使用しています。

jQuery の場合、MS CDN と ScriptManager を使用してパッケージを読み込みます。

jQuery は正常にロードされますが、Jcrop に問題があります。

Jcrop を呼び出すと、IE 8 でエラーが発生します。

Line: 461
Error: Object doesn't support this property or method

MasterPage で jCrop を使用できないようです。MasterPage が関連付けられていないページで同じスクリプトを使用しようとしましたが、機能しています。

それを解決する方法はありますか?御時間ありがとうございます。

グローバルアサックス

protected void Application_Start(object sender, EventArgs e)
        {
            // Map jQuery to MS CDN Path
            ScriptResourceDefinition myScriptResDef = new ScriptResourceDefinition();
            myScriptResDef.Path = "~/Assets/Scripts/jQuery/jquery-1.5.1.min.js";
            myScriptResDef.DebugPath = "~/Assets/Scripts/jQuery/jquery-1.5.1.js";
            myScriptResDef.CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js";
            myScriptResDef.CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js";
            ScriptManager.ScriptResourceMapping.AddDefinition("jquery", null, myScriptResDef);
        }

マスターページ

<head runat="server">
    <title>Cms Administration</title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="uxScriptManagerMasterPage" runat="server" EnableCdn="True">
        <Scripts>
            <asp:ScriptReference Name="jquery" />
        </Scripts>
    </asp:ScriptManager>       
    <div id="main-content">
        <asp:ContentPlaceHolder ID="MainContent" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

子ページ

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script src="Assets/Scripts/Jcrop/js/jquery.Jcrop.min.js"></script>
    <link rel="stylesheet" href="Assets/Scripts/Jcrop/css/jquery.Jcrop.css" type="text/css" />
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <script type="text/javascript">

        $(document).ready(function () {
            $("#msgid").html("This is Hello World by JQuery");
        });

    jQuery(function(){
        jQuery('#cropbox').Jcrop();
    });

    </script>



    This is Hello World by HTML
    <div id="msgid">
    </div>

    <img src="demo_files/flowers.jpg" id="cropbox" />

</asp:Content>
4

2 に答える 2

2

同じ正確な問題があり、私は解決策を見つけました。

上記の問題の場合、解決策はコンテンツのページjqueryスクリプトである必要があります。マスターページ環境では、ASP.NETは実行時に名前を異なる方法でレンダリングする傾向があるため、クライアントIDを参照する必要があります。

だからこれを行う:

「#msgid」を「#<%= msgid.ClientID%>」に置き換えます

'#cropbox'を"#<%= Cropbox.ClientID%>"に置き換えます

これで私の問題は解決しました。

幸運を

于 2012-07-06T22:10:23.703 に答える
1

jCrop の後に jQuery がロードされ、エラーが発生する可能性があります。両方のファイルに同じ方法を使用して JavaScript を含めて、適切な順序で読み込まれるようにしてください。

または、次の短い記事を試すこともできます: http://nathanaeljones.com/573/combining-jcrop-and-server-side-image-resizing/

于 2011-06-04T11:55:09.133 に答える