Добавить Javascript динамически во время выполнения Silverlight 4 - PullRequest
2 голосов
/ 14 июля 2010

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

Вот то, что я пробовал до сих пор без удачи. Он может создать блок скрипта, но когда я пытаюсь добавить функцию. Единственное, что я могу собрать, это то, что, поскольку страница загружается, она не может добавить метод JS. Я пытаюсь добавить это до загрузки страницы. Поэтому я решил, что смогу добавить сценарий. Если я не могу добавить функцию, я хотел бы, по крайней мере, передать ей некоторый JavaScript в своем коде для вызова во время выполнения.

Вот как я пытаюсь динамически добавить блок сценария ... который вызывает ошибку времени выполнения метода SetProperty ().

HtmlElement script = HtmlPage.Document.CreateElement("script");
script.SetAttribute("type", "text/javascript");
script.SetProperty("innerHTML", "function testing() { alert('hello world'); }");
HtmlPage.Document.Body.AppendChild(script);

Затем, чтобы вызвать функцию EXISTING в документе, это работает ...

HtmlPage.Window.Invoke("testing2");

Если я не могу динамически добавить блок скрипта, могу ли я как-нибудь вызвать некоторый JavaScript из моего кода?

Спасибо !!!

1 Ответ

4 голосов
/ 14 июля 2010

Ну, я разобрался, как вызвать какой-нибудь скрипт из кода позади ...

Вот как вызвать некоторый скрипт во время выполнения

HtmlPage.Window.Eval("window.close();");

Вот способ динамически создавать функции JavaScript и добавлять их на свою страницу для использования в приложениях Silverlight.

// Create the script block
var scriptElement = HtmlPage.Document.CreateElement("script");
scriptElement.SetAttribute("type", "text/javascript");
// Add a function called foo
scriptElement.SetProperty("text", "function foo() { alert('hello foo!'); } ");
// Append script block to the body of the page
HtmlPage.Document.Body.AppendChild(scriptElement);


// Now invoke the function from your silverlight application
HtmlPage.Window.Invoke("foo", null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...