c# - .NET WebBrowser 控件中的 HtmlDocument.InvokeScript 问题

标签 c# .net javascript webbrowser-control

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

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

例如,跳过函数的实际调用是LFM.Flash.Player.skip(),所以我尝试了以下方法:

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

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

我已经确认该调用至少可以像使用 Chrome 检查器和控制台输入的那样工作。 (还没有弄清楚是否有办法在 IE 中调用任意 javascript...任何建议表示赞赏)

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

此外,是的,我已经尝试过在脚本调用中使用和不使用括号......仍然没有成功。

编辑:明确地说,我是在 WinForms 浏览器控件中而不是在 ASP.NET 页面中执行此操作。

最佳答案

我遇到了同样的问题,它为我解决了:

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

希望对您有所帮助!

关于c# - .NET WebBrowser 控件中的 HtmlDocument.InvokeScript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3690822/

相关文章:

c# - 需要在场景切换触发碰撞前添加 3 秒延迟

c# - .Net Core RC2 的 Moq.netcore 失败

c# - 如何压缩 JSON 响应

.net - 跨平台更改屏幕分辨率的方法

c# - 是否可以模拟 FTDI USB 设备?

javascript - Select2 适用于 fiddle 而不适用于本地服务器

javascript - 通过应用自定义 css 类禁用 html 输入元素

c# - MongoDB 从子文档中删除子文档文档

c# - 数据为空。试图获得 8AM 和 CurrentTime 的 TIMESTAMPDIFF

c# - 我想从列表中找到最接近的较大纸张尺寸