繁体   English   中英

在运行时Silverlight 4中动态添加Javascript

[英]Add Javascript Dynamically at Runtime Silverlight 4

我试图在运行时的代码中添加一个方法,然后在运行时添加一个函数。 我可以毫无问题地向文档中动态添加元素。 因此,我尝试了相同的策略来添加脚本块。

到目前为止,这是我一直没有尝试过的方法。 它可以创建脚本块,但是当我尝试添加功能时。 我唯一可以收集的是,由于页面正在加载,因此无法添加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吗?

谢谢!!!

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

这是在运行时调用某些脚本的方法

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM