Перейти к содержанию

Занопить функцию, внутри своей программы C#


Рекомендуемые сообщения

Привет народ, столкнулся с проблемой в разработке простой программы под себя - управление webbroswer на C#.

Проблема в следующем - wb создает мессаджбоксы и уведомления, как можно запретить ему это делать?)

вот например такой скрипт на js

Скрытый текст

<script>
window.onbeforeunload = function (e) {
  // Ловим событие для Interner Explorer
  var e = e || window.event;
  var myMessage= "Вы действительно хотите покинуть страницу, не сохранив данные?";
  // Для Internet Explorer и Firefox
  if (e) {
    e.returnValue = myMessage;
  }
  // Для Safari и Chrome
  return myMessage;
};
</script>

Суть его такова - вывести окно "точно покинуть страницу?", как можно заставить wb игнорировать появление таких окон?

Есть ли какие-то свойства или лучше сделать это через излюбленное здесь - замена функции на nop?

Или можно перехватить сразу все вспл. окна? Хотел бы закончить проект, а нигде найти такой информации не удалось

 

 

 

Что я за человек..... как только сформулировал проблему, так сразу решение появилось.... ПРОСТИТЕ:mellow:

Если кому-то пригодится(ну а вдруг)

Надо сделать следующее - дописать функцию переводящую все действия на себя

Скрытый текст

        private void InjectNoCloseBlocker()
        {
            HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
            string alertBlocker = "window.onbeforeunload = function (e) { }";
            element.text = alertBlocker;
            head.AppendChild(scriptEl);
        }

 

И обязательно повесить ее на обработчик событий  webBrowser1_DocumentCompleted

 

Изменено пользователем Trix
UPD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.