.NET WebBrowser控件中的HtmlDocument.InvokeScript问题

时间:2010-09-11 11:32:54

标签: c# .net javascript webbrowser-control

我正在尝试围绕last.fm创建一个包装器,并且需要调用页面中的一些javascript函数。特别是Stop,Skip,Ban和Love。

InvokeScript似乎可以与页面HTML本身内的任何脚本函数一起使用,但不适用于从外部脚本文件加载的脚本。

例如,对skip函数的实际调用是LFM.Flash.Player.skip(),所以我尝试了以下内容:

_browser.Document.InvokeScript("LFM.Flash.Player.skip");

但它所做的只是返回null并且页面上没有任何反应。

我已经确认该通话至少可以使用Chrome检查器和控制台进行打字。 (还没弄清楚是否有办法在IE中调用任意javascript ...任何建议都表示赞赏)

是否有一些必须调用该函数的特殊方法?

另外,是的,我在脚本调用中使用和不使用括号来尝试它...仍然没有运气。

编辑:要清楚,我在 WinForms浏览器控件中执行此操作,而不是在ASP.NET页面中。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并为我解决了这个问题:

  • 通过在外部浏览器中手动加载页面,确保控制台中没有错误
  • IE Con​​trol似乎在缓存页面/脚本==>我发现在实际的IE浏览器中刷新页面也会刷新.NET IE Con​​trol中的页面。您还可以使用调试工具清除缓存。我为每一个变化都这样做,它有效......

希望这有帮助!

答案 1 :(得分:-1)

调用skip时不是缺少括号吗?否则这只是“引用”该函数,它不会调用它。