2015-09-24 54 views
4

我試圖從WPF瀏覽器控件網頁捕獲點擊事件。我創建了一個ObjectForScriptingHelper類:使用ObjectForScripting時WPF瀏覽器控件window.external.invoke()拋出對象不支持屬性或方法

[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在瀏覽器控件中顯示的頁上,添加了一個按鈕的HT毫升頁和加入的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文檔都遵循上面的方法。我錯過了什麼嗎?

回答

1

如果其他人有這個相同的問題。原來,命名方法Invoke是問題所在。一旦我改變了方法名稱,它就可以按預期工作。

相關問題