我想创建一个需要调用一些Javascript方法的Silverlight类库。我将这些方法放在一个.js文件中,并将其添加到项目中。但是,当我尝试调用js文件中的任何方法时,我收到FailedtoInvoke错误。我明白这个问题可以通过在ASPX或HTML页面的头部添加JS文件的引用来解决。但我正在开发一个类库,所以这是不可能的。有人知道如何解决这个问题吗?我使用Silverlight 4和Visual Studio 2010在Silverlight类库中嵌入JS文件
1
A
回答
0
将.js文件添加到您的库问题,因为它听起来已经完成了,确保它的构建操作是“资源”。
您可以Application.GetResourceStream
提取到的内容: -
StreamResourceInfo sriJS = Application.GetResourceStream(new Uri("YourAssemblyName;component/MyStuff.js", UriKind.Relative));
注意开放的结构,你的类库的程序集名称,需要后面的文字“组件”。这会告诉Silverlight在您的dll中查找将包含在最终应用程序的Xap中的资源。
现在你需要把信息的Stream
属性的内容转换成字符串: -
StreamReader reader = new StreamReader(sriJS.Stream, System.Text.Encoding.UTF8);
string js = reader.ReadToEnd();
最后你可以注入的JavaScript到当前页面: -
HtmlPage.Window.Eval(js);
完蛋了,现在可以使用HtmlPage.Window.Invoke
调用js中定义的任何全局函数。
0
试着这么做:
string myScriptCodeString = GetScriptCodeStringFromSomewhere();
System.Windows.Browser.HtmlPage.Window.Eval(myScriptCodeString);
然后在myScriptCodeString
定义的方法应该是可用的。
相关问题
- 1. 在TypeScript文件中导入AMD JS库
- 2. 在silverlight中嵌入闪存
- 3. 在类库中嵌入二进制文件
- 4. 如何从嵌入在Lync中的Silverlight中读取文件?
- 5. 将php嵌入到php类文件中
- 6. 如何在WebStorm中调试.NET嵌入式js文件?
- 7. 在Silverlight中嵌入iframe应用程序
- 8. 在SWF/Silverlight中嵌入MS Excel
- 9. Silverlight文件类型
- 10. 嵌入SpiderMonkey JS
- 11. 从Spring引导可执行文件库中的嵌入式库启动Java类
- 12. 在Angular中导入JS库
- 13. 将库嵌入到jar文件
- 14. Silverlight 3类库
- 15. 在js中导入java类
- 16. 将第三方js库嵌入到自定义控件库中。是否?
- 17. 是否可以在Silverlight ContentPresenter中嵌入文本格式?
- 18. 如何将Razor C#代码嵌入到.js文件中?
- 19. 谁将用户对象嵌入MEAN js HTML文件中?
- 20. 将内部版本号嵌入到.js文件中
- 21. 在jar文件中包装嵌入式数据库
- 22. 在WPF应用程序中嵌入Silverlight控件 - 可以吗?
- 23. 如何在博客页面中嵌入Silverlight控件?
- 24. 如何将silverlight类库中的xml文件包含到xap文件中
- 25. 在d3.js中导入json文件
- 26. 在JS文件中写入html
- 27. 嵌入在许多文件
- 28. 类库作为类库中的嵌入式资源
- 29. 如何将Silverlight库链接到普通类库的文件
- 30. 嵌入文件到EXE文件在VB6
为此,我需要将我的js文件分别寄存在我的服务器中,然后在这里调用它? – Harish 2011-02-09 10:41:25
您可以在服务器上的某个位置托管该脚本,并使用“WebClient”类对其进行异步加载,并在其回调中执行上述代码。但是你也可以在库中定义`myScriptCodeString`硬编码。硬编码脚本字符串并不是很好,但另一种选择是查看脚本对象功能[http://msdn.microsoft.com/en-us/library/cc645085(VS.95).aspx]如果这是你的情况的可能性。 – herzmeister 2011-02-09 10:50:33