silverlight调用html中的js方法

在承载silverlight的html页添加代码: 

<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2"></script>
    <script type="text/javascript">
        var map = null;
        function GetMap() {
            map = new VEMap("mapDiv");
            map.LoadMap();
        }
        function MoveMap(strwhere) {
            try{
              map.Find(null,strwhere);
           }
           catch (e) {
              alert(e.Message);
            }
        }

在id为silverlightControlHost的div的前面添加一个div

代码如下:

 <div  id="mapDiv" style="position:absolute;  443px; height:417px; z-index:2; left:301px; top:0px;" >
 </div>

F5运行:

在silverlight的后台给textblock添加事件:

 private void TextBlock_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            string  slcity = "";
            TextBlock sltxtblock = (sender) as TextBlock;
            slcity=sltxtblock.Text;
            ScriptObject  smovemap=(ScriptObject)HtmlPage.Window.GetProperty("MoveMap");
            //如果控件正在某一页中运行,则返回值将引用浏览器的 window 对象;或者,如果控件正在 IFRAME 的上下文中运行,则引用 IFRAME 的 window 对象
            smovemap.InvokeSelf(slcity);//调用当前的ScriptObject并假定它表示某一js方法
        }

F5运行

选择一个节点,比如我选择了郑州,结果如下:

原文地址:https://www.cnblogs.com/flyaway100/p/3527901.html