silverlight和js相互调用

步骤一:在silverlight后台代码类中声明被js调用的方法

 

首先要在构造函数中添加

HtmlPage.RegisterScriptableObject("HtmlDemo", this);

 

 

其次声明被js调用的方法:

[ScriptableMember]
        public void UpdateText(string htmlSource)
        {
            if (htmlSource != null)
            {
                this.richTextBox.HTML = htmlSource;
            }
        }

 

在此声明在何时调用js方法(这里试在按钮1点击时):

private void button1_Click(object sender, RoutedEventArgs e)
        {
            //int width = 620;
            //int height = 220;
            //HtmlElement heScript = HtmlPage.Document.CreateElement("script");

            //heScript.SetAttribute("type", "text/javascript");
            //string scriptStr = "function ShowModal(uristring)";
            //scriptStr += "{";
            //scriptStr += "var result = window.ShowModalTest(uristring,";
            //scriptStr += "'dialogWidth:" + width.ToString() + "px; dialogHeight:" + height.ToString() + "px; center:yes');}";


            //heScript.SetProperty("text", scriptStr);
            //HtmlPage.Document.Body.AppendChild(heScript);

            Uri u = new Uri(Application.Current.Host.Source, "../FckeditorDemo.aspx");
            ScriptObject showModal = HtmlPage.Window.GetProperty("ShowModalTest") as ScriptObject;
            showModal.InvokeSelf(u.OriginalString);

        }

 

 步骤二:在html页面声明js方法

 

function ShowModalTest(form) {
              var result = window.showModalDialog(form,"dialogWidth:620px; dialogHeight:320px; center:yes");
              var silverlightObject = document.getElementById("mySilverlightControl");
              silverlightObject.content.HtmlDemo.UpdateText(result);
          }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值