Silverlight与HTML双向交互
来源:互联网 发布:奇葩的淘宝评价 编辑:程序博客网 时间:2024/04/26 14:49
Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。
HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。
一,向Silverlight传递数据,实现个性化加载
Silverlight在HTML中的引用是:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/VideoCenter.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
这种引用插件的方式提供了一系列的参数来实现个性加载,上面的代码中我们加了一行参数
<param name="initParams" value="CategoryId=1" />
我们可以在Silverlight中处理这些参数,打开Silverlight应用程序的App代码文件,加上接收参数的代码
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.InitParams.Count != 0)
{
foreach(var item in e.InitParams)
{
this.Resources.Add(item.Key, item.Value);
}
}
this.RootVisual = new MainPage();
}
我们看到对e.InitParams的处理,即可得到了HTML中传进来的参数,实现个性化加载:
if(App.Current.Resources["CategoryId"]!=null)
{
int cateId = int.Parse(App.Current.Resources["CategoryId"].ToString());
CategoryItem c = new CategoryItem();
c.CategoryID = cateId;
this.gridOfList.Children.Add(c);
}
二,Silverlight调用HTML中的脚本资源,实现自身的样式等修改
首先我们可以在加载Silverlight组件的页面上编写一段Javascript脚本
function InvokePlayer(videoId) {
document.getElementById("divCategory").style.display = "none";
var player = document.getElementById("divPlayer");
player.style.width = "100%";
player.style.height = "600px";
}
怎么在Silverlight中调用这个脚本呢?我们可以在某个事件中调用Silverlight提供的类方法
System.Windows.Browser.HtmlPage.Window.Invoke("InvokePlayer", videoId);
当然类似的方法还有几个:
(HtmlPage.Window.GetProperty("InvokePlayer") as ScriptObject)InvokeSelf("Good Function!");HtmlPage.Window.Eval("document.getElementById('result')") as HtmlElement…
即可实现调用脚本。经过以上的两个方法即可实现HTML和Silverlight之间双向传递数据的功能。
HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。
一,向Silverlight传递数据,实现个性化加载
Silverlight在HTML中的引用是:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/VideoCenter.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
这种引用插件的方式提供了一系列的参数来实现个性加载,上面的代码中我们加了一行参数
<param name="initParams" value="CategoryId=1" />
我们可以在Silverlight中处理这些参数,打开Silverlight应用程序的App代码文件,加上接收参数的代码
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.InitParams.Count != 0)
{
foreach(var item in e.InitParams)
{
this.Resources.Add(item.Key, item.Value);
}
}
this.RootVisual = new MainPage();
}
我们看到对e.InitParams的处理,即可得到了HTML中传进来的参数,实现个性化加载:
if(App.Current.Resources["CategoryId"]!=null)
{
int cateId = int.Parse(App.Current.Resources["CategoryId"].ToString());
CategoryItem c = new CategoryItem();
c.CategoryID = cateId;
this.gridOfList.Children.Add(c);
}
二,Silverlight调用HTML中的脚本资源,实现自身的样式等修改
首先我们可以在加载Silverlight组件的页面上编写一段Javascript脚本
function InvokePlayer(videoId) {
document.getElementById("divCategory").style.display = "none";
var player = document.getElementById("divPlayer");
player.style.width = "100%";
player.style.height = "600px";
}
怎么在Silverlight中调用这个脚本呢?我们可以在某个事件中调用Silverlight提供的类方法
System.Windows.Browser.HtmlPage.Window.Invoke("InvokePlayer", videoId);
当然类似的方法还有几个:
(HtmlPage.Window.GetProperty("InvokePlayer") as ScriptObject)InvokeSelf("Good Function!");HtmlPage.Window.Eval("document.getElementById('result')") as HtmlElement…
即可实现调用脚本。经过以上的两个方法即可实现HTML和Silverlight之间双向传递数据的功能。
- Silverlight与HTML双向交互
- Silverlight与Html交互
- 在Silverlight中与HTML DOM交互
- Silverlight与html网页、javascript交互
- Silverlight与html网页、javascript交互
- HTML如何与silverlight进行交互
- Silverlight 和html 交互
- Silverlight与HTML页面交互基本方法总结
- Silverlight与HTML元素交互操作以及Cookie
- 如何在Silverlight控件中与Html元素交互
- Silverlight与HTML页面交互基本方法总结
- Silverlight与JavaScript交互
- silverlight与页面交互
- Silverlight与JS交互
- Silverlight 与 JS交互
- (19):Silverlight 2 如何在Silverlight中与HTML DOM交互(上)
- (20):Silverlight 2 如何在Silverlight中与HTML DOM交互(下)
- 总结Silverlight与HTML页面交互基本方法(js调用Silverlight方法/属性)
- source insight研究——配置篇
- Windows用户减少,Mac及iOS用户激增
- dedecms代码研究(6)
- 用firefox 上传文件时,路径要写对。
- Android RIL 架构学习总结
- Silverlight与HTML双向交互
- 11个在jQuery代码编写中应该注意的性能原则
- 通过Link server 插入数据时产生的问题
- URL
- 在iPhone程序上读取PDF文件 (rev0.1 ^-^;)
- Android核心分析 之一--------分析方法论探讨之设计意图 .
- C语言排序详解
- Hibernate openSession() 和 getCurrentSession的区别
- dedecms代码研究(7)最后