我试图在运行时在我的代码中添加一个方法,在运行时添加一个函数。 我可以毫无问题地将元素动态添加到我的文档中。所以我尝试了添加脚本 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/