SilverLight瀏覽器互動之:SilverLight程式調用外部Html中的Javascript方法(附源碼)

來源:互聯網
上載者:User

概述

WebBrowser

從 Silverlight 3 開始,您將可以建立在瀏覽器宿主環境外啟動並執行 Silverlight 應用程式。

通過 WebBrowser 控制項,您可以在此宿主環境中顯示 HTML 內容。

您可以在 XAML 或代碼中添加 WebBrowser 控制項。預設情況下,WebBrowser 控制項不具有大小。

因此,您必須指定 Height 和 Width 以使控制項顯示在應用程式中。當 WebBrowser 顯示在運行在瀏覽器中的應用程式時,將顯示具有指定高度和寬度的一個矩形,以便代替該控制項。

您將 HTML 內容設定為以若干方式顯示在 WebBrowser 控制項中。

  • 調用 NavigateToString 方法並傳遞一個包含您要顯示的 XAML 內容的字串。

  • Source 屬性設定為完全限定 URI 或相對 URI。

  • 調用 Navigate 方法並將一個完整或相對的 URI 傳遞給您要顯示的 HTML 內容。

  

WebBrowser.InvokeScript 方法

執行在當前載入的 HTML 中定義的指令碼函數。

名稱
說明

InvokeScript(String):執行在當前載入的 HTML 中定義的指定指令碼。

InvokeScript(String, array<String>[]):使用指定的參數執行在當前載入的 HTML 中定義的指定指令碼函數。

 

WebBrowser.LoadCompleted 事件

當頂級導航完成且內容載入到 WebBrowser 控制項中時發生,或在載入期間發生錯誤時發生。

 

效果:

xaml代碼:

    <Grid x:Name="LayoutRoot">
<Grid.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FF0055DD" Offset="0" />
<GradientStop Color="#FF00DDFF" Offset="1" />
</LinearGradientBrush>
</Grid.Background>

<!--可以在此空間中顯示 HTML 內容。
Source 為Web中ClientBin中的一個頁面-->
<WebBrowser x:Name="web" Source="/script-page.htm" Margin="15" />
</Grid>

cs代碼:

        public MainPage()
{
InitializeComponent();
//當頂級導航完成且內容載入到 WebBrowser 控制項中時發生,或在載入期間發生錯誤時發生。
web.LoadCompleted +=
new LoadCompletedEventHandler(web_LoadCompleted);
}


void web_LoadCompleted(object sender, NavigationEventArgs e)
{
//執行在當前載入的 HTML 中定義的指令碼函數。
//不含參數的Javascript方法 SayHello()
web.InvokeScript("SayHello");
//有一個參數的Javascript方法 GreetMe(name)
web.InvokeScript("GreetMe", "'SilverLight'");
}

html代碼:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script language="JavaScript">
//為div1 新增內容
//一個參數的方法
function GreetMe(name) {
div1.innerHTML += "<p>你好! " + name + "</p>";
}
//無參數的方法
function SayHello() {
div1.innerHTML += "<p>你好!</p>";
}
</script>
</head>
<body>
Hello world!<br />
<div id="div1">
</div>
</body>
</html>

大功告成!

源碼下載

作者:記憶逝去的青春
出處:http://www.cnblogs.com/lukun/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,如有問題,可以通過http://www.cnblogs.com/lukun/  聯絡我,非常感謝。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.