HtmlDocument.InvokeScript Проблема в элементе управления .NET WebBrowser - PullRequest
2 голосов
/ 11 сентября 2010

Я пытаюсь создать оболочку для last.fm, и мне нужно вызвать некоторые функции javascript на странице.В частности, для Stop, Skip, Ban и Love.

Кажется, что InvokeScript отлично работает с любой функцией скрипта, которая находится внутри самого HTML-кода страницы, но не со скриптами, загруженными из внешних файлов скриптов.

Например, фактический вызов функции пропуска - это LFM.Flash.Player.skip (), поэтому я попробовал следующее:

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

Но все, что он делает - возвращает ноль, и на странице ничего не происходит.

Я подтвердил, что этот вызов, по крайней мере, работает так, как если бы он вводился с помощью инспектора Chrome и консоли.(Не выяснил, есть ли способ вызвать произвольный javascript в IE ... любые предложения приветствуются)

Есть ли какой-то особый способ вызова этой функции?

Также, да, я пробовал это с и без скобок в вызове сценария ... все еще не повезло.

Редактировать: Чтобы было ясно, я делаю это в Управление браузером WinForms отсутствует на странице ASP.NET.

Ответы [ 2 ]

0 голосов
/ 03 мая 2013

У меня была такая же проблема, и она решила ее для меня:

  • Убедитесь, что в консоли нет ошибок при ручной загрузке страницы во внешнем браузере
  • Похоже, IE Controlчтобы кэшировать страницы / скрипты ==> Я обнаружил, что обновление страницы в реальном браузере IE также обновляет страницу в .NET IE Control.Вы также можете очистить кеш с помощью инструментов отладки.Я делаю это для каждого обмена, и это работает ...

Надеюсь, это поможет!

0 голосов
/ 16 марта 2011

Не пропускаете ли вы скобки при вызове пропуска? В противном случае это только «ссылается» на функцию, но не вызывает ее.

...