Отмена запросов JavaScript в IE - PullRequest
0 голосов
/ 01 декабря 2010

Кто-нибудь знает, как обрабатывать и отменять запросы javascript в IE?В основном, я заинтересован в такой функциональности для управления C # WebBrowser.Целью здесь является обработка запросов javascript / ajax к Интернету, и, если URL запроса соответствует какому-либо фильтру, отмените его.Думайте об этом как о каком-то блокировщике рекламы.Но любое решение будет хорошо, потому что я думаю, что смогу использовать его как-то в своем проекте.Или, может быть, вы знаете, как это сделать с другим браузером / оболочкой?Буду признателен за любую помощь.

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Если вы имеете в виду вызовы ajax, то это зависит от того, как вы делаете вызов.Если вы делаете вызов, используя, например, jquery, то пример того, как отменить его, можно найти здесь:

Прервать Ajax-запросы, используя jQuery

Если вы делаете вызов напрямую, используяи объект XmlHttpRequest, затем посмотрите метод abort здесь:

http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx

Таким образом, в основном вы вызываете соответствующий метод kill / abort, а затем обработчик или обратные вызовы ошибок, которые вы прикрепили к ajaxВызов никогда не должен вызываться.

Если вы хотите заблокировать вызовы ajax в элементе управления WebBrowser, кажется, что есть выход, но он немного грязный.См. Более позднюю часть этого обсуждения:

http://social.msdn.microsoft.com/Forums/en/winforms/thread/c7c9a6f9-9875-4d8b-8c87-81f2c423fa6a

По сути, вы можете изменить соответствующий HtmlDocument, чтобы в первую очередь принимать вызовы ajax.Однако, похоже, вы не можете отключить JavaScript для данного сеанса IE (не только для элемента управления WebBrowser), это глобальная настройка.

0 голосов
/ 01 декабря 2010

Не уверен, что вы имеете в виду под "запросами JavaScript", но ... Если вы используете элемент управления веб-браузера в .Net 3.5+ Framework, вы можете перехватить HTML, отправленный элементу управления, и отключить JavaScript , но это довольно глупо.

Если вы можете редактировать JavaScript напрямую, вы можете переписать функцию. Так что, если функция была написана как:

var alertUser = function(){alert('Hello, silly user.');}

Вы можете написать alertUser = function(){}; Что в основном устанавливает пустую функцию, чтобы она не вызывала ошибки при вызове; но вместо этого ничего не делай.

Если вы хотите, чтобы функция «отменяла», вы просто добавили бы return;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...