文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JavaScript 与 Silverlight 的调用

JavaScript 与 Silverlight 的调用

时间:2010-08-17  来源:l2010q2010

1、JavaScript 调用 Silverlight  的函数

 

JS代码:

 function LoadData() {                       document.getElementById("xap").content.Page.LoadData("BookinfoInfo");
}

html代码:

  <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"  id="xap" width="100%" height="100%">

Xmal代码:添加引用(using System.Windows.Browser;) 

 

 //这里必须声明是public,否则js调用该方法时会报错
    [ScriptableMember]     

public void LoadData(string  doc)
        {
            //具体操作Silverlight 代码
            GetFileDir("Images");
        }

 

2、Silverlight   调用 JavaScript的函数

XAML:

 
<Grid Background="DarkGreen" ShowGridLines="True"> 
    <Button x:Name="sayHello" Content="Hello World!" 
            Click="Hello_Click"></Button> 
</Grid>
 


C#:

private void Hello_Click(object sender, RoutedEventArgs e) 
{ 
    ScriptObject so = HtmlPage.Window.GetProperty("Hello") as ScriptObject;   
    so.InvokeSelf(); 
}

HtmlWindow的CreateInstance()方法

其作用是创建Javascript对象的实例。

示例:
Javascript: 

 

<script type="text/javascript"> var Hello = function(yourName) {     this.YourName = yourName; } Hello.prototype.Alert = function() {     alert("Hello " + this.YourName); }     </script>

 

 

XAML:

 

<StackPanel Background="DarkGreen">   
  <TextBox x:Name="txtYourName" Width="400" Margin="0,30,0,30">
</TextBox>    
 <Button x:Name="btnTest" Content="Test CreateInstance"             Width="200" Click="btnTest_Click">
</Button> 
</StackPanel> 

 

C#:
 

private void btnTest_Click(object sender, RoutedEventArgs e) {     ScriptObject so = HtmlPage.Window.CreateInstance("Hello", txtYourName.Text);     so.Invoke("多福多寿"); }
 

 



 

HtmlWindow的Eval()方法  

Javascript的Eval()函数有时候非常好用,这里HtmlWindow的Eval()方法也具有将字符串转化为可执行代码的功能。
示例:
XAML:

 
<StackPanel Background="DarkGreen"> 
    <TextBox x:Name="txtScript" Width="400" 
             Margin="0,30,0,30"></TextBox> 
    <Button x:Name="btnEval" Content="Test Eval()" 
            Width="100" Click="Eval_Click"></Button> 
</StackPanel>
 

C#:  
private void Eval_Click(object sender, RoutedEventArgs e) 
{ 
    HtmlPage.Window.Eval(“法国”); 
}
 


HtmlWindow的Alert()、Confirm()、Prompt()方法

 

以上三个方法都是包装的浏览器Javascript函数,如HtmlWindow.Confirm()方法源码为:

 
public bool Confirm(string confirmText) 
{ 
    HtmlPage.VerifyThread(); 
    if (confirmText == null) 
    { 
        confirmText = string.Empty; 
    } 
    return (bool) this.Invoke("confirm", new object[] { confirmText }); 
}
 

示例:
XAML:  
<Grid Background="DarkGreen">         
    <Button x:Name="Test" Content="Test Alert、Confirm、Prompt" 
            Click="Test_Click"></Button> 
</Grid>
 

C#:  
private void Test_Click(object sender, RoutedEventArgs e) 
{ 
    var str = HtmlPage.Window.Prompt("Please in put your blog:"); 
 
    var confirm = HtmlPage.Window.Confirm("Your blog is:\"" + str + "\",are you sure?"); 
    if (confirm) 
    { 
        HtmlPage.Window.Alert("OK! Your blog is:\"" + str + "\""); 
    } 
    else 
    { 
        HtmlPage.Window.Alert("I'm sorry, you input a wrong blog!"); 
    } 
}





相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载