WPF調用javascirpt:WebBrowser.InvokeScript(string scriptName, params object[] args)傳參方法

WPF調用代碼:

new WebBrowser().InvokeScript("addAreasBoundary", new object[] { new object[] { "北京市", "天津市" } });

JS代碼:

function addAreasBoundary(areas) {
        areas = areas.toArray();轉換成js數組
        alert(areas);

}

在JS函數如上的前提下,WPF調用採用如下代碼報錯:

1.new WebBrowser().InvokeScript("addAreasBoundary", new object[] { "北京市", "天津市" } );

         程序會認爲調用的是js函數有兩個參數,故報錯。

2.new WebBrowser().InvokeScript("addAreasBoundary", new object[] { new string[] { "北京市", "天津市" } });

         js只能識別VBArray和Variant objects,所以c#的string數組傳入js後不能通過js的.toArray()方法轉換成js數組,故報錯。

3.new WebBrowser().InvokeScript("addAreasBoundary", new object[] { new object[] { 自定義對象實例, 自定義對象實例} });

         純js無法操作自定義對象,故報錯。

以上純屬個人觀點,如果有誤,歡迎批評指正。

參考:https://social.msdn.microsoft.com/Forums/vstudio/en-US/c950a3c2-d498-47ca-b54e-b18d55666595/webbrowserinvokescript-parameter-question

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章