Вызов функции JavaScript из приложения Silverlight 4.0 - PullRequest
1 голос
/ 13 мая 2010

Я пытаюсь вызвать функцию из приложения Silverlight. Это должно быть очень простым делом, но пока я не получаю желаемый результат.

Это мой код Silverlight:

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        HtmlPage.Window.Invoke("SayHello", new string[] { "Salut!" });
    }

А это код JavaScript:

   function SayHello(theid) {
        alert(eval(theid));
        var divStatusDiv = document.getElementById("divStatus");
        divStatusDiv.style.backgroundColor = "Red";
    }

В предупреждающем сообщении всегда отображается «undefined», но когда я нажимаю «OK», цвет этого DIV меняется на Красный, как и должно быть.

Почему я все время получаю "Undefined"?

Ответы [ 3 ]

2 голосов
/ 13 мая 2010

Вам нужно создать JSON, который можно передавать правильно, а не просто передавать массив таким образом. Вы можете просто вернуть "Салют!" вместо новой строки [] {"Salut!" } или вы можете создать массив json для имеющегося у вас строкового массива.

1 голос
/ 13 мая 2010

Я не знаком с Silverlight, но если theid имеет значение "Salut!" внутри SayHello, то вы не можете eval его, поскольку это строка текста, а не код. Вы должны изменить строку alert(eval(theid)); на alert(theid);.

0 голосов
/ 13 мая 2010

Использование

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