日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript

發布時間:2025/5/22 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Silverlight 2 Beta 1版本發布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, Ironpython,對JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學Silverlight 2系列》文章將從Silverlight 2基礎知識、數據與通信、自定義控件、動畫、圖形圖像等幾個方面帶您快速進入Silverlight 2開發。

Silverlight中內置了對于HTML、客戶端腳本等的支持。很多情況下,我們編寫的Web應用程序中用了一些JavaScript或者AJAX框架,我們希望能夠在Silverlight調用某些腳本方法,或者說在Silverlight中觸發某個腳本的執行,這時就需要用到在Silverlight中調用JavaScript,本文將簡單介紹這一內容。

使用GetProperty獲取腳本對象

先來看一個簡單的例子,在Silverlight測試頁面中放入一個div用作顯示信息:

<div id="result"></div>

編寫一段簡單的JavaScript代碼:

<script type="text/javascript">function Hello(message){var resultSpan = $get("result");resultSpan.innerText = "Hello " + message;} </script>

再編寫一個簡單的輸入信息界面:

<StackPanel Background="#CDFCAE" Orientation="Vertical"><StackPanel Height="40"><TextBlock Text="Calling Browser Script from Silverlight"Foreground="Red"></TextBlock></StackPanel><StackPanel Orientation="Horizontal"><TextBox x:Name="input" Width="340" Height="40" Margin="20 0 20 0"></TextBox><Button x:Name="submit" Width="120" Height="40" Background="Red"Content="調 用" FontSize="20" Foreground="Red" Click="submit_Click"></Button></StackPanel> </StackPanel>

實現對腳本的調用:

private void submit_Click(object sender, RoutedEventArgs e) {ScriptObject hello = HtmlPage.Window.GetProperty("Hello") as ScriptObject;hello.InvokeSelf(this.input.Text); }

ScriptObject提供了任何客戶端腳本的封裝,不僅僅是JavaScript,使用其他的AJAX框架也可以,如jQuery等。然后調用InvokeSelf()方法,傳入參數,這里ScriptObject總共提供了兩個方法,Invoke和InvokeSelf,如果我們只調用腳本對象的自身,就可以使用InvokeSelf,如果腳本對象中還有其它的函數等,可以使用Invoke傳入名稱進行調用,兩個方法的定義如下:

[SecuritySafeCritical] public virtual object Invoke(string name, params object[] args);[SecuritySafeCritical] public virtual object InvokeSelf(params object[] args);

運行上面的示例:

?

輸入TerryLee后點擊調用,可以看到確實調用了客戶端腳本:

?

使用CreateInstance創建腳本對象

除了使用上面所說的使用HtmlPage.Window.GetProperty方法獲取腳本對象之外,還有一種替代方法,即使用HtmlPage.Window屬性的CreateInstance方法。還是使用上面的示例,我們在測試頁中加入如下一段腳本,使用prototype為myHello添加了顯示的功能:

<script type="text/javascript">myHello = function(message){this.Message = message;}myHello.prototype.Display = function(){var resultSpan = $get("result");resultSpan.innerText = "Hello " + this.Message;} </script>

使用HtmlPage.Window.CreateInstance創建腳本對象

private void submit_Click(object sender, RoutedEventArgs e) {ScriptObject script = HtmlPage.Window.CreateInstance("myHello",this.input.Text);object result = script.Invoke("Display"); }

運行后的效果跟上面的示例是一樣的,如:

輸入文本信息后:

?

使用HtmlPage.Window.Eval()

最后還有一種機制,就是使用HtmlPage.Window.Eval()方法,只要我們給該方法傳入一段字符串,它都會作為JavaScript來執行。做一個簡單的測試,我們再修改一下上面的示例代碼:

private void submit_Click(object sender, RoutedEventArgs e) {HtmlPage.Window.Eval(this.input.Text); }

運行后我們在文本框中輸入一段腳本alert('TerryLee');,效果如下所示:

既然HtmlPage.Window.Eval()可以執行一段腳本,并且將執行的結果以對象形式返回,我們可以使用它來獲取DOM元素。如下面這段代碼:

private void submit_Click(object sender, RoutedEventArgs e) {HtmlElement result = HtmlPage.Window.Eval("document.getElementById('result')") as HtmlElement;string message = result.GetAttribute("innerHTML");HtmlPage.Window.Alert(message); }

運行后效果如下,獲取的result確實就是我們定義的div。

?

對AJAX框架的支持

前面說過,ScriptObject不僅僅是對JavaScript的封裝,也支持其它的AJAX框架,現在我們用jQuery來測試一下,編寫一小段代碼:

<script type="text/javascript">function myHello(message){$("#result").text("Hello " + message);} </script>

調用腳本

private void submit_Click(object sender, RoutedEventArgs e) {ScriptObject script = HtmlPage.Window.GetProperty("myHello") as ScriptObject;script.InvokeSelf(this.input.Text); }

運行后的結果與前面的示例是一樣的:

?

結束語

本文介紹了在Silverlight中調用JavaScript的幾種方法,下一篇我將介紹如何在JavaScript中調用Silverlight。

轉載于:https://www.cnblogs.com/Terrylee/archive/2008/03/12/Silverlight2-step-by-step-part21-calling-javascript-from-silverlight.html

總結

以上是生活随笔為你收集整理的一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩影视一区 | 婷婷视频网 | 无码熟妇αⅴ人妻又粗又大 | 少妇按摩一区二区三区 | 色哟哟在线观看 | 一本无码aⅴ久久久国产 | 美女av免费在线观看 | 久久久久网站 | 爱爱爱爱网站 | 能在线看的av| 日韩免费黄色 | 日韩第六页 | 性做爰裸体按摩视频 | 96精品视频在线观看 | 国产91区 | 操穴影院| 亚洲精品久久久久久宅男 | 亚洲人精品午夜射精日韩 | 国产激情91| 亚洲高清网站 | 亚洲国产成人一区 | 日韩一级伦理片 | 性按摩玩人妻hd中文字幕 | 丁香综合网 | 中文字幕 欧美日韩 | 成人影视免费 | 日本护士╳╳╳hd少妇 | 91中文字幕视频 | 自拍偷拍国产 | 亚洲国产中文字幕在线观看 | 国产精品成人aaaaa网站 | 亚洲天堂一区二区在线 | 视频在线91| 一级特黄妇女高潮2 | 快播视频在线观看 | 色偷偷av男人的天堂 | 欧美hdse| 虫族全黄h全肉污文 | 四虎永久免费在线观看 | 亚洲综合在线网 | 亚洲第一天堂 | 中文字字幕在线中文乱码电影 | 亚洲爱情岛论坛永久 | 这里都是精品 | 久久网中文字幕 | 国产夫妻露脸 | 污污视频免费网站 | 六月激情婷婷 | 极品白嫩少妇无套内谢 | 久久精品视频久久 | 手机在线观看毛片 | 亚洲一区二区三区色 | 国产成年人视频 | 成人春色影视 | 中文字幕一区二区三区人妻不卡 | heyzo北岛玲在线播放 | 国产成人精品一区二区三区 | 日本道在线观看 | 国产91精品久久久久 | 久久精品人妻av一区二区三区 | 久久精品国产亚洲av麻豆图片 | 久久久久久久国产视频 | 亚洲天堂二区 | 成人羞羞国产免费 | 亚洲综合激情五月久久 | 日韩视频一区二区三区四区 | 调教一区 | 4438亚洲最大| 特级特黄刘亦菲aaa级 | 欧美一级不卡视频 | 苏晴忘穿内裤坐公交车被揉到视频 | 日韩黄色一级片 | 成人福利av | 色一情一交一乱一区二区三区 | 亚洲av成人片色在线观看高潮 | 青青草自拍视频 | 免费观看av | 国产精品7 | av免费大片 | 毛片啪啪啪 | 91国偷自产中文字幕久久 | いいなり北条麻妃av101 | 国产一区欧美 | 国产精品99久 | 亲子乱对白乱都乱了 | 五月天av在线 | 成年人免费在线观看网站 | 波多野结衣在线网址 | 亚洲视频欧美 | 少妇视频网 | 欧洲av一区二区三区 | 日韩精品在线观看AV | 操丝袜美女视频 | 亚洲GV成人无码久久精品 | 久草最新| 天天拍天天操 | av高清在线免费观看 | 成人一级黄色 | 色丁香久久 |