我立即为我可能使用的任何误解人道歉。
我有一系列由PHP生成的网页,我正在使用WebBrowser控件进行操作。这些页面定义了隐藏在体内的JavaScript函数(这对我来说很愚蠢,我没有编写它们,我只需要使用它们。)
是否可以使用Document.InvokeScript方法访问这些函数,如果没有,我可以做些什么来访问它们?
答案 0 :(得分:1)
Windows窗体的实现使用IDispatch.GetIDsOfNames在top level named items的script engine中查找函数名称的完全匹配。对于MSHTML的active script interfaces的JScript实现,顶级命名项是
你真的不需要在脚本引擎中添加新的命名项(如果你真的想通过IDispatchEx可以这样做),有许多方法可以使用现有的命名项来执行代码,例如
您可以使用上面的一个作为脚本方法的名称来调用HtmlDocument.InvokeScript并在其他参数中传递代码。
答案 1 :(得分:0)
是的 - JavaScript中的所有功能都可以同等访问。
注释
window.FuncitionName(...)
无法调用 - 您也无法通过InvokeScript调用此类函数。 以下“私人”功能的示例:
$(function(){
....
function MyHiddenFunction() {
// you can't call be from outside!!!!
}
});
答案 2 :(得分:0)
我找到了答案(发生了一些事情,我再也无法访问我的帐户了,所以如果有人能够回答我那也会膨胀)但答案是这样的: WebBrowser使用IE7和IE7是一块废话。
IE9执行脚本就好了。 所以我必须强迫它使用IE9
这是通过使用这里给出的答案来完成的:
WebBrowser control and JavaScript errors
所以......万岁!