2011-09-25 8 views
0

私はRaphaelとasp.netを初めて使用しています。私はasp.netで簡単なラファエルの例をテストしようとしていますが、私は次のエラーgeting保つ:マイクロソフトのJScriptランタイムエラー:オブジェクトがRaphael asp.net - Microsoft JScript実行時エラー:オブジェクトが必要です

を期待このエラーは、この行で発生します。

var paper = Raphael("diii", 320, 200); 

これはページの完全なコード:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master"AutoEventWireup="true" CodeFile="Lingua.aspx.cs" Inherits="Lingua" %> 
    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> 
    </asp:Content> 
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 
    <script type="text/javascript" src="Scripts/raphael.js"></script> 
    <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script> 
    <script type="text/javascript"> 
function createCircle() { 
    var paper = Raphael("diii", 320, 200); 
    var circle = paper.circle(50, 40, 10); 
    cicle.attr("fill", "#f00"); 
    circle.attr("stroke", "#fff"); 
} 
    </script> 
    <asp:GridView ID="GridView1" runat="server"> 
    </asp:GridView> 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
    <asp:ListItem Value="ger">one</asp:ListItem> 
    <asp:ListItem Value="ara">two</asp:ListItem> 
    </asp:DropDownList> 
    <asp:Button ID="Button1" runat="server" onClientClick="return createCircle();" 
    Text="Add" /> 
    <div id="diii"></div> 
    </asp:Content> 

私が使用して上記のラインのinsted場合、同じエラーが発生します。

var paper = Raphael(10,50,320,200); 

誰に問題があるか知っていますか?

答えて

1

あなたのコード内で

  1. を修正する必要が2つあります参照Rafealのjsファイルの名前が何であるかを確認してください。 raphael-min.jsかraphael.jsか?
  2. あなたのコードでは、circleをcicleとして間違えています。それを訂正

あなたの修正コードを使用すると、クライアント側の効果を確認したい場合は、サーバー側のボタンからイベントをトリガしませんここ

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master"AutoEventWireup="true" CodeFile="Lingua.aspx.cs" Inherits="Lingua" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 
<script type="text/javascript" src="Scripts/raphael-min.js"></script> 
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script> 
<script type="text/javascript"> 
function createCircle() { 
var paper = Raphael("diii", 320, 200); 
var circle = paper.circle(50, 40, 10); 
circle.attr("fill", "#f00"); 
circle.attr("stroke", "#fff"); 
} 
</script> 
<asp:GridView ID="GridView1" runat="server"> 
</asp:GridView> 
<asp:DropDownList ID="DropDownList1" runat="server"> 
<asp:ListItem Value="ger">one</asp:ListItem> 
<asp:ListItem Value="ara">two</asp:ListItem> 
</asp:DropDownList> 
<asp:Button ID="Button1" runat="server" onClientClick="return createCircle();" 
Text="Add" /> 
<div id="diii"></div> 
</asp:Content> 

です。

+0

ありがとうございます。私は最近、他のものと仕事をしています。私がこれに戻るとき、私は問題が解決したかどうかを知っています。 – Vernizario

0

raphael.jsがロードされていないようですが、あなたのブラウザの開発ツールを使って、すべてのスクリプトがロードされていることを確認してください(404または500はありません)。

これらのパスにあるスクリプトに直接ブラウザでアクセスしてみてください。

これ以外にも、次のことをお勧めします。

  1. jQuery 1.6.4(よくサポートされている、バグ修正など)を使用してください。
  2. jQuery準備関数を使用して、呼び出しを試みる前にページのロードが完了したことを確認します。

あなたのスクリプトが完全に最初に読み込まれていないように見えるので、jsコードを置き換えてください。

<script type="text/javascript"> 
    $(document).ready(function() { 
     createCircle(); 
    }); 
    function createCircle() { 
     var paper = Raphael("diii", 320, 200); 
     var circle = paper.circle(50, 40, 10); 
     cicle.attr("fill", "#f00"); 
     circle.attr("stroke", "#fff"); 
    } 
</script> 
+0

スクリプトが読み込まれ、ブラウザにもアクセスできます。私の無知については申し訳ありませんが、上記のコードにjquery関数を挿入する場所はどこですか?私はcreteCircle関数が配置されているスクリプトタグの中にそれを掲載しました。そして、ボタンをクリックするとエラーが表示されるのではなく、ページが読み込まれるとすぐにエラーが表示されます。どんなイデオリア?私はあなたが満足しているjquery 1.6.4も使用しています。ありがとう – Vernizario

+0

例が編集されました。私が考えているのは、スクリプトが実行される前にページが終了するのを待たずに、Raphaelライブラリが見つからないということです。あなたがスクリプトを切り替えた場合でも役立つかもしれないので、jQueryが最初に含まれていて、RaphaelとしてのRaphaelはJQに依存しています。 –

+0

ありがとうございます。私は最近、他のものと仕事をしています。私がこれに戻るとき、私は問題が解決したかどうかを知っています。 – Vernizario

関連する問題