Как я могу вызвать функции javascript и передать значения из XAML / Silverlight? - PullRequest
1 голос
/ 18 июня 2009

Я создаю Silverlight без Visual Studio. У меня просто сырой HTML, XAML и JS (JavaScript).

Что я хочу сделать, это передать значения из XAML в JavaScript. Я могу вызывать и активировать функции JavaScript из XAML. Увидеть ниже. Элемент canvas имеет событие нажатия левой кнопки мыши, вызывающее LandOnSpace в javascript.

Но как бы я назвал ShowMsg? Или, точнее, как бы я передавал значения этому вызову? Обычно в javascript вы можете просто пойти: ShowMsg (500, 700, «Вы должны нам деньги»);

Но когда я пытаюсь это сделать в коде xaml, это что-то ломает. Я полагаю, что он жалуется на то, что функция javascript не существует.

        <Canvas x:Name="btnLandOnSpace" Background="LightGreen" MouseLeftButtonUp="LandOnSpace"
            Cursor="Hand" Canvas.Top ="0"  Width="70" Height="50"> 
            <TextBlock Text="LandOnSpace"  />
            </Canvas>

function LandOnSpace(sender, e) {  //on server
if (!ShipAnimateActive && !blnWaitingOnServer) {
    blnWaitingOnServer = true;
    RunServerFunction("/sqgame/getJSLLandOnSpace");
        ShowWaitingBox();
        };
else {
    alert('Waiting on server.');
};
}



function ShowMsg(SintCost, SintRent , SstrChoiceText) { 
blnPayChoice = true;    
intCost = SintCost;     
intRent = SintRent;     
strChoiceText = SstrChoiceText;   } 

Ответы [ 2 ]

2 голосов
/ 19 июня 2009

Если вы хотите вызывать функции javascript из Silverlight 2.0, вы можете использовать HtmlPage в пространстве имен System.Windows.Browser.

var param = new object[] {"some parameter"};
HtmlPage.Window.Invoke("myfunc",param);

Однако, исходя из приведенного выше примера, кажется, что вы используете Silverlight 1.0, где ваш обработчик событий находится в Javascript, а не в C # или VB.

Вы можете перейти на Silverlight 2.0. Сервер, который вы используете для страниц сервера, не мешает вам использовать Silverlight 2.0 (или 3.0). Вы можете прекрасно запустить приложение Silverlight 2.0 в Google App Engine.

Чтобы начать разработку в 2.0, загрузите инструменты Silverlight 2 здесь: http://www.microsoft.com/downloadS/details.aspx?familyid=C22D6A7B-546F-4407-8EF6-D60C8EE221ED&displaylang=en

А для получения справки о том, как установить связь между управляемым кодом Silverlight и Javascript внутри браузера, вы можете проверить эту страницу: http://msdn.microsoft.com/en-us/library/cc645076(VS.95).aspx

1 голос
/ 18 июня 2009

Правильный способ сделать это - запустить обработчик js с параметрами по умолчанию. Затем из Javascript используйте модель Silverlight 1.0 для навигации по XAML. См. Документы Silverlight 1.0 . См. Метод FindName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...