基于this解决方案,我尝试调用位于我的WebBrowser
控件中的JavaScript函数。 .xaml
看起来像这样
<Grid>
<WebBrowser x:Name="browser"/>
</Grid>
但这段代码都没有。
public MainWindow()
{
InitializeComponent();
browser.NavigateToString("<html><script>function callMe() {alert('Hello');} document.myfunc = callMe;</script><body>Hello World</body></html>");
dynamic doc = browser.Document;
doc.myfunc();
}
错误
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: &#39;&#39; mshtml.HTMLDocumentClass&#39;不包含的定义 &#39; MYFUNC&#39;&#39;
也不是本代码
public MainWindow()
{
InitializeComponent();
browser.NavigateToString("<html><script>function callMe() {alert('Hallo');}</script><body>Hello World</body></html>");
browser.InvokeScript("callMe");
}
错误
System.Runtime.InteropServices.COMException:&#39;未知名称。 (例外 来自HRESULT:0x80020006(DISP_E_UNKNOWNNAME))&#39;
做好工作。
我错过了什么?
答案 0 :(得分:1)
试试这个:
browser.NavigateToString("<html><script>function callMe() {alert('Hello');} document.myfunc = callMe;</script><body>Hello World</body></html>");
browser.LoadCompleted += (s,e) => browser.InvokeScript("callMe");