c# - 在运行时动态添加 Javascript Silverlight 4

标签 c# javascript silverlight-4.0

我试图在运行时在我的代码中添加一个方法,在运行时添加一个函数。 我可以毫无问题地将元素动态添加到我的文档中。所以我尝试了添加脚本 block 的相同策略。

这是我迄今为止尝试过的方法,但没有成功。它可以创建脚本 block ,但是当我尝试添加函数时。我唯一能收集到的是,由于页面正在加载,它无法添加 JS 方法。我试图在页面加载之前添加它。所以我想我可以添加脚本。如果我不能添加一个函数,我想至少在我的代码后面为它提供一些 javascript 以便在运行时调用。

以下是我尝试动态添加脚本 block 的方式...这会在 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");

如果我不能动态添加脚本 block ,我能否以某种方式从我的代码后面调用一些 javascript?

谢谢!!!

最佳答案

好吧,我想出了如何从后面的代码中调用一些脚本...

下面是如何在运行时调用一些脚本

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);

关于c# - 在运行时动态添加 Javascript Silverlight 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3249453/

相关文章:

c# - 如何使用 EF Core Code-First 创建具有子类别的类别表?

c# - 遍历通过域模型上的 linq 查询返回的对象的属性和值

c# - Convert.FromBase64String 的奇怪行为

javascript - <body> 元素上的 jQuery.offset() 提供了错误的 "top"值

javascript - JS : checking object with key vs hasOwnProperty?

c# - 如何让Silverlight UserControl填充网页?

c# - View 模型在数据绑定(bind)之外的作用?

c# - 当自定义控件的子项及其属性发生更改时,如何重新呈现自定义控件?

javascript - 我可以在另一个 Controller 中使用一个 Controller 吗?

Silverlight MVVM 绑定(bind)更新以不希望的顺序触发