利用SilverLight调用javascrip多种方法

虽然silverlight已经足够满足我们开发各种类型页面需要,我们考虑以下情景:我们想获取浏览器宽度怎么办,在silverlight中并没有这个方法让我们直接使用,但是我们知道如何使用网页特效获取浏览器宽度,一下我将介绍两种调用javascript方法。

        1.在silverlight内部执行javascript

        首先在页面添加命名空间:system.windows.browser;

htmlpage.window.eval("alert('执行了javascript')");

 

        2.调用宿主页面javascript函数:

        例如我们在宿主页面有如下javascript函数:

 

 function prompt() {
            alert("执行了宿主的js");
        }
 

 

        我们在silverlight加上如下代码:

 

scriptobject urivirtual = htmlpage.window.getproperty("prompt") as scriptobject;
urivirtual.invokeself();

 

        这样我们就调用到了宿主页面的prompt函数

简介silverlight

microsoft silverlight是微软所发展的 web 前端应用程序开发解决方案,是微软丰富型互联网应用程序(rich internet application)策略的主要应用程序开发平台之一,以浏览器的外挂组件方式,提供 web 应用程序中多媒体(含影音流与音效流)与高度交互性前端应用程序的解决方案,同时它也是微软 ux(用户经验)策略中的一环,也是微软试图将美术设计和程序开发人员的工作明确切分与协同合作发展应用程序的尝试之一

时间: 2024-09-30 21:59:25

利用SilverLight调用javascrip多种方法的相关文章

一起谈.NET技术,SilverLight调用WebService的方法

在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性. 步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入. <form id="form1" runat="server" style="height:100%">    <div id="silverlightControl

SilverLight调用WebService的方法

在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性. 步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入. <form id="form1" runat="server" style="height:100%">     <div id="silverlightContro

ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法       群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebService方法,总报这个错误,贴图如下: 解决办法:      1.确定你的Silverlight项目及承载Silverlight的Web程序根目录下都包含2个跨域文件,分别是crossdomain.xml和clientaccesspolicy.xml:  crossdomain.xml文件,

图片-Android调用系统发送彩信,试过多种方法,在各种机型上不适应

问题描述 Android调用系统发送彩信,试过多种方法,在各种机型上不适应 Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("smsto:")); intent.putExtra("exit_on_sent", true); try { intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(ImageU

java中利用反射调用另一类的private方法的简单实例_java

我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public. Hibernate是如何实现该功能的呢?答案是利用JAVA的反射机制,如下:  import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectDemo

利用SilverLight 遍历父子控件通用方法

利用silverlight 遍历父子控件通用方法 silverlight中datagrid找元素,真是麻烦,没有rows对象,无法遍历.从网上找来这些方法,挺好用的: public class vthelper() {         public t getparentobject<t>(dependencyobject obj, string name) where t : frameworkelement         {             dependencyobject pa

Java反射高级应用--利用反射调用类的私有方法修改私有方法值,以及替换Java的类成员数据

  package me.test; import java.lang.reflect.*;  //导入反射需要的包 public class ReflectTest {  public static void main(String[] args)  throws  Exception  {       /*  下面通过反射完成对一个对象中成员的替换    *   并且执行执行私有方法     *   完成对 Poiont类的对象中所有的 String的对象的d换成x    *   并且类中无

java怎样可以做到利用JNI调用C++类,而不是C++方法?

问题描述 网上搜的介绍几本都通过JNI是java调用C/C++方法的,是否可以用java调用C/C++类呢?因为我底层接口是写的C++类,类中声明了好多变量,这些变量在类中好多方法中要被使用或赋值,相当于全局变量. 解决方案 解决方案二:基本上:无简易方法.如果你需要C++程序处理一个特定的复杂事物,可以考虑将C++写成纯命令行程序,然后Java用Runtime去执行,也就是进程方式.解决方案三:你觉得这样行不行,我在这个类之上再写个方法,在这个方法内调用类.但是这个方法我要多次调用,并且前一次

js实现跨域的多种方法_javascript技巧

从域说起 域: 域是WIN2K网络系统的安全性边界.我们知道一个计算机网最基本的单元就是"域",这一点不是WIN2K所独有的,但活动目录可以贯穿一个或多个域.在独立的计算机上,域即指计算机本身,一个域可以分布在多个物理位置上,同时一个物理位置又可以划分不同网段为不同的域,每个域都有自己的安全策略以及它与其他域的信任关系.当多个域通过信任关系连接起来之后,活动目录可以被多个信任域域共享域树:域树由多个域组成,这些域共享同一表结构和配置,形成一个连续的名字空间.树中的域通过信任关系连接起来