WPF呼叫javascirpt:WebBrowser.InvokeScript(string scriptName, params object[] args)傳參方法
阿新 • • 發佈:2018-12-16
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無法操作自定義物件,故報錯。
以上純屬個人觀點,如果有誤,歡迎批評指正。