Raphael asp.net - Ошибка времени выполнения Microsoft JScript: ожидается объект - PullRequest
0 голосов
/ 25 сентября 2011

Я новичок в Рафаэле, а также asp.net. Я пытаюсь протестировать простой пример 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>

Такая же ошибка возникает, если вместо указанной выше строки я использую:

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

Кто-нибудь знает в чем проблема?

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

Есть две вещи, которые необходимо исправить в вашем коде

  1. Проверьте, как называется указанный файл Rafeal js.Это Raphael-min.js или Raphael.js.
  2. В вашем коде вы опечатываете круг как цикл.исправьте его

Ваш исправленный код здесь

    <%@ 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 голосов
/ 25 сентября 2011

Похоже, ваш 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>
...