65.9K
CodeProject 正在变化。 阅读更多。
Home

Silverlight JavaScript 集成 - 第 1 部分

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (3投票s)

2011年7月16日

CPOL
viewsIcon

23858

downloadIcon

396

Silverlight 和 JavaScript 的集成

Sample Image - maximum width is 600 pixels

引言

Silverlight 是一种基于浏览器的插件。该插件旨在与网页集成。

文档对象模型 (DOM) 将允许 Web 应用程序和脚本动态地访问和更新文档的内容和结构。

Using the Code

  • 访问 HTML 元素并修改其属性
    div id="headerDiv" style="width:100%; height:20%; background-color:Red"
    
    private void btnAccessHtmlElements_Click(object sender, RoutedEventArgs e)
            {
                System.Windows.Browser.HtmlDocument doc = 
    			System.Windows.Browser.HtmlPage.Document;
                System.Windows.Browser.HtmlElement headerDiv = 
    			doc.GetElementById("headerDiv");
                headerDiv.SetStyleAttribute("background-color", "green");
            }
  • 访问查询字符串的值。

    假设网页使用以下链接打开

    • https://:7410/SilverlightDomInteractionTestPage.aspx?employeeID=600
    private void btnAccessQueryStrings_Click(object sender, RoutedEventArgs e)
    {
    	System.Windows.Browser.HtmlDocument doc=
    		System.Windows.Browser.HtmlPage.Document;
    	int empID = int.Parse(doc.QueryString["employeeID"]);
    	MessageBox.Show(empID.ToString());//Results 600
    }
  • 访问所有查询字符串的值。

    假设网页使用以下链接打开

    • https://:7410/SilverlightDomInteractionTestPage.aspx?employeeID=600&sallaryLessthan=2000
    private void btnAccessAllQueryStrings_Click(object sender, RoutedEventArgs e)
    {
    	Dictionary<string, string> QueryStrings = new Dictionary<string, string>();
    	System.Windows.Browser.HtmlWindow win = 
    				System.Windows.Browser.HtmlPage.Window;
    	System.Windows.Browser.HtmlDocument doc = 
    				System.Windows.Browser.HtmlPage.Document;
    	foreach (string key in doc.QueryString.Keys)
    	{
    		QueryStrings.Add(key, doc.QueryString[key]);
    	}
    	MessageBox.Show(QueryStrings.Count.ToString());//Results 2
    }
  • 调用 JavaScript 函数
    function ChangeHeaderDivColor() {
    	var hDivElement = document.getElementById("headerDiv");
    	hDivElement.style.backgroundColor = "Green";
    }
    private void btnInvokeJSFunction_Click(object sender, RoutedEventArgs e)
    {
    	System.Windows.Browser.HtmlWindow win = 
    			System.Windows.Browser.HtmlPage.Window;
    	win.Invoke("ChangeHeaderDivColor");
    }
  • 从 JavaScript 函数返回值
    function GetSum(a, b) 
    {
    	return a + b;
    }
    
    private void btnReturnValueJSFunction_Click(object sender, RoutedEventArgs e)
    {
    	System.Windows.Browser.HtmlWindow win = 
    			System.Windows.Browser.HtmlPage.Window;
    	object result = win.Invoke("GetSum", 17, 7);
    	MessageBox.Show(result.ToString());//Result 24
    }
  • 显示 JavaScript 警报
    private void bntJSAlert_Click(object sender, RoutedEventArgs e)
    {
    	System.Windows.Browser.HtmlWindow win = 
    		System.Windows.Browser.HtmlPage.Window;
    	win.Alert("Hello DOM!");
    }
  • 导航到链接
    private void btnNavigateToLink_Click(object sender, RoutedEventArgs e)
    {
    	string target = "_blank";
    	System.Windows.Browser.HtmlPage.Window.Navigate
    		(new Uri("http://silverlight.net"), target);
    }
    _blank	Open the linked document in a new window or tab
    _self	Open the linked document in the same frame as it was clicked 
    	(this is default)
    _parent	Open the linked document in the parent frameset
    _top	Open the linked document in the full body of the window
    framename	Open the linked document in a named frame
  • 导航到书签
    private void btnNavigateToBookmark_Click(object sender, RoutedEventArgs e)
    {
    	System.Windows.Browser.HtmlPage.Window.NavigateToBookmark("headerDiv");
    }
  • 获取浏览器信息
    private void btnGetBrowserInformation_Click(object sender, RoutedEventArgs e)
    {
    	System.Windows.Browser.BrowserInformation bInfo = 
    		System.Windows.Browser.HtmlPage.BrowserInformation;
    
    	int majorVersion = bInfo.BrowserVersion.Major;
    	int minorVersion = bInfo.BrowserVersion.Minor;
    	int revisionVersion = bInfo.BrowserVersion.Revision;
    	int buildVersion = bInfo.BrowserVersion.Build;
    
    	bool cookiesEnabled = bInfo.CookiesEnabled;
    
    	string name = bInfo.Name;
    	string platform = bInfo.Platform;
    	string productName = bInfo.ProductName;
    	string productVersion = bInfo.ProductVersion;
    	string userAgent = bInfo.UserAgent;
    }

历史

  • 2011年7月16日:初始版本
© . All rights reserved.