公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2008年10月3日 星期五

Silverlight 2.0線上講堂 - 22:在Silverlight 2.0應用程式中存取JavaScript

剛剛休假回來,就有一堆的朋友發Email或是留言給我,希望我在Silverlight 2.0 線上講堂中可以提供更多的課程內容。當然,時間上允許的話,我會盡快的把計畫好的課程內容放上去,同時也謝謝這麼多的朋友一起參與線上講堂的學習。接下來的兩堂課中,我將為各位介紹如何讓Silverlight 2.0的應用程式可以和網頁中的HTML與JavaScript互動。

首先,假設我們已經使用Silverlight 2.0 技術完成了下面的橫幅廣告:

現在希望當使用者點選廣告圖片時,可以超連結到廣告商的網站,應該要怎樣做呢?

1. 首先,使用VS 2008開啟Silverlight 2.0 應用程式專案(你可以使用前面做過的例子,或是新增一個Silverlight 2.0 應用程式,裡面放上一張圖片當作廣告)。

2. 在要觸發JavaScript的XAML標籤上,加入MouseLeftButtonUp事件的處理常式,並按下滑鼠右鍵,選取[巡覽至事件處理常式]。

快照1 

 

在Silverlight 2.0 的基本類別函式庫中,定義了一個System.Windows.Browser的命名空間,裡面包含了幾個重要的物件類別:

  • HtmlPage:表示目前裝載Silverlight 2.0 控制項的網頁。
  • HtmlWindow:表示網頁中的Window物件。
  • HtmlDocument:表示網頁中的Document物件。

   只需要透過這些物件,我們就可以從Silverlight 2.0 的控制項中存取網頁中的Html控制項內容,或是執行JavaScript!

3. 首先,在XAML程式原始檔的最前面,加上引用System.Windows.Browser命名空間的宣告:

using System.Windows.Browser;

4. 當使用者點選圖片之後,我們希望可以將網頁超連結到廣告商的網址。因此先取得網頁中的Window物件:

HtmlWindow window = HtmlPage.Window;

HtmlWindow物件提供了Navigate方法,你只需要將網址封裝成Uri物件帶進去執行即可:

window.Navigate(new Uri("http://www.silverlight.idv.tw"),

     "_blank");

若是要觸發網頁中的JavaScript函式的話,也可以直接透過HtmlWindow物件所提供的Invoke方法,再依序輸入JavaScript的函式名稱及參數值即可。

5. 若是要動態的搭配DOM控制網頁中的Html控制項的話,你就必須要先取得網頁中的Document物件:

HtmlDocument doc = HtmlPage.Document;

再透過GetElementById或是GetElementByTagName方法,你就可以在Silverlight 2.0 的程式中控制裝載SIlverlight 2.0 控制項的網頁內容了!! 例如下面的程式碼可以將網頁的背景色設為粉紅色,3秒之後再調整回來:

HtmlDocument doc = HtmlPage.Document;
object data = doc.GetProperty("bgColor");
doc.SetProperty("bgColor", "pink");
System.Threading.Thread.Sleep(3000);
doc.SetProperty("bgColor", data.ToString());

這次的課程完成的效果如下(點選圖片開啟連結):

2008年10月1日 星期三

伯朗藍山咖啡,掰掰......

前幾天,金車公司打著"全系列食品衛生署檢驗合格"的廣告,讓我以為真的可以放心喝我喜歡的伯朗藍山咖啡了。但是當我看到他們的檢驗報告之後,我決定再也不喝了......

目前所謂的檢驗報告,可以分為兩種:

1. "財團法人"食品工業研究所的報告(如金車食品1金車食品2、克寧奶粉(及所有雀巢食品)):以HPLC-UV方式檢驗,最低檢驗極限2.0ppm。

2. SGS等其他民間公正檢驗單位報告(如西雅圖咖啡、摩卡咖啡):以LC/MS/MS方式檢驗,最低檢驗極限0.05ppm。

或許你會覺得,都已經是ppm(mg/Kg)了,0.05ppm跟2.0ppm應該是沒有差吧 ! 舉兩個例子給你參考:

1. 以我最愛喝的伯朗藍山咖啡為例,一罐是250ml,一天我可以喝3~4罐。若是以食工所的檢驗報告而言,4罐的伯朗藍山咖啡裡面最多包含2mg的三聚氰胺;而通過SGS的西雅圖咖啡1000ml最多只含0.05mg的三聚氰胺。不管人體每日容許值是多少,健康無價,原本就不應該出現在咖啡的東西,每天加2mg給你吃,你安心嗎?

2. 其實衛生署放寬標準,最可惡的就是圖利財團。以奶粉為例,若是你是廠商,"不小心"進了一公斤含2.5ppm三聚氰胺的毒奶粉,請問你會怎樣做?

    a. 若是要通過食工所的檢驗,只需要每公斤毒奶粉滲入250g以上的沒有毒奶粉稀釋,

         2.5mg / 1.25 Kg = 2 ppm

         就可以重新包裝上架上去賣。

    b. 若是要通過SGS檢驗,就必須每公斤毒奶粉滲入50Kg以上的沒有毒奶粉稀釋,

         2.5mg / 50 Kg = 0.05 ppm

         才可以重新上架去賣,但是這樣成本很高。

而我們偉大九劉政府的衛生署,只要廠商通過食工所的檢驗(2.0ppm),就可以在電視上大言不慚的說通過檢驗,並且重新上架販售 -- 換句話說,就是鼓勵廠商採用 a.的解決方案 -- 犧牲國人健康,圖利廠商解套。

因此,不要再相信 "衛生署檢驗合格" 的東西就可以吃的鬼話了 ! 要買乳製品之前,請先看清楚廠商的檢驗報告 -- 若是"財團法人"食品工業研究所檢驗通過的產品,我建議你還是不要買的好。所以為了我的健康,

伯朗藍山咖啡,掰掰了.....

克寧奶粉,掰掰了..... 

雀巢咖啡,掰掰了.....      

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)