从JavaScript中引用C#方法而不调用它
我使用ObjectForScript设置了WebBrowser控件,这样我就可以从浏览器控件中托管的JavaScript调用C#方法 一切似乎都很顺利,除了在我的单元测试中,我对窗口进行了一些检查。我正在使用的外部方法,结果证明从JavaScript中引用C#方法而不调用它,c#,javascript,function,methods,webbrowser-control,C#,Javascript,Function,Methods,Webbrowser Control,我使用ObjectForScript设置了WebBrowser控件,这样我就可以从浏览器控件中托管的JavaScript调用C#方法 一切似乎都很顺利,除了在我的单元测试中,我对窗口进行了一些检查。我正在使用的外部方法,结果证明 window.external.MyMethod …似乎和…一样有效 window.external.MyMethod() 如果我需要该方法的引用,该怎么办?或者对于我的单元测试: typeof(window.external.MyMethod) === 'func
window.external.MyMethod
…似乎和…一样有效
window.external.MyMethod()
如果我需要该方法的引用,该怎么办?或者对于我的单元测试:
typeof(window.external.MyMethod) === 'function'
但这将调用该方法(并失败,因为它返回该方法返回的任何内容的类型)
如何在不调用该方法的情况下获取对该方法的引用?查看我能找到的内容,它看起来像引用了窗口的任何成员。外部
启动对主机的调用:
…对“window.external.speech”的引用将调用主机来解析名称“speech”
我并不特别熟悉这个API,但您似乎可以执行以下操作:
window.external.checkType('MyMethod') === 'function'
其中,
checkType
是您在C代码中声明的一个函数,可以告诉您所提供属性的类型。您是否尝试过语法window.external[MyMethod]
?是的,我尝试过window.external['MyMethod']。这也调用了该方法。