微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight中嵌入和使用html 富文本编辑器

 

      首先我要抱怨一下,silverlight 4在windowless模式下无法使用中文输入。所以对于下面所说的方法存在着缺陷。

 

一、嵌入html页面

 

       使用的工具为一个htmlhost的免费插件,使用它可以在silverlight中嵌入html页面,网址 

  http://www.divelements.com/silverlight/tools.aspx

      使用方法如下所示,其中 HtmlEditor.htm 页面中包含了一个js 的ckEditor 以及读取编辑器的一些js函数

注意silverlight 需设置为 windowless 模式下。原理应该是直接在网页上添加一个html frame 元素然后将其

覆盖在silverlight之上。

 

 

 

二、调用嵌入页面的js代码 

 

     现在的问题是如何调用嵌入页面的js代码,由于其不属于silverlight同一个页面,所以无法直接通过silverlight

的技术去调用。网上查了很多资料都没解决方法,而且实际上我是刚转行网站,html 和 js神马的对于我来说真是浮云。

还好有威风的项目经理帮我解决这个问题。

 

     解决方法是在silverlight的页面上写一个代理函数,然后在silverlight中就可以调用该代理函数来读取或者操作

嵌入页面中的编辑器了

 

 

   解释下

    getEditorFrame函数,该函数返回嵌入的html iframe窗口。

   调用某个iframe窗口的js代码可使用以下方法,兼容IE、firefox

window.parent.document.getElementsByTagName("iframe")[x].contentwindow.getAllImgSrc();

x:可为0,1,2,3..   

    frame.contentwindow.getAllImgSrc函数 为该frame窗口页面HtmlEditor.htm其中的js函数

 

 

    三、总结

 

        silverlight 4 现在很少有好用的htmleditor控件,而使用以上方法由于需设置windowless模式导致插件上所有

的控件都无法输入中文。对于silverlight 整站应用来说,是悲剧的。

         所以最后我们弃用了这个方法直接弹出另一个不是纯silverlight的页面进行编辑,然后通过SL消息机制与主页面交互。

 

         应该有另一个方法就是把编辑器单独写成一个silverlight插件,然后在SL页面中叠加上这个插件,但似乎布局还有滚动控制

什么的很难控制,谁能给个思路?

          不能输入中文这个SL4 还是不怎么给力,希望SL5给力点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐