簡體   English   中英

使用ObjectForScripting時的WPF瀏覽器控件window.external.invoke()throws對象不支持屬性或方法

[英]WPF Browser Control when using ObjectForScripting window.external.invoke() throws object doesn't support property or method

我正在嘗試從WPF瀏覽器控制網頁捕獲點擊事件。 我創建了一個ObjectForScriptingHelper類:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]
public class ObjectForScriptingHelper
{
    public void Invoke()
    {
        MessageBox.Show("Hello");
    }
}

在托管Web瀏覽器控件的WPF窗口的構造函數中,我使用這個幫助器類作為ObjectForScripting:

public MainWindow()
{
    InitializeComponent();
    StandardWpfBrowser.ObjectForScripting = new ObjectForScriptingHelper();    
}

然后我有一個Uri變量ViewPageUri ,我導航到:

StandardWpfBrowser.Navigate(ViewPageUri);

然后在瀏覽器控件顯示的頁面中我引用了jquery,在html頁面添加了一個按鈕並添加了javascript:

$('button').click(function () {
    if (window.external === null)
        alert('ObjectForScripting is not set');
    else
    {
        alert('ObjectForScripting is set');
        window.external.Invoke();
    }
})

正在執行else分支,但錯誤消息object doesn't support property or method 'Invoke'被拋出。

所有教程和MSDN文檔都遵循上述方法。 我錯過了什么嗎?

如果其他人有同樣的問題。 原來,命名方法Invoke是問題所在。 一旦我更改了方法名稱,它就會按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM