Trix Опубликовано 19 мая, 2017 Поделиться Опубликовано 19 мая, 2017 (изменено) Привет народ, столкнулся с проблемой в разработке простой программы под себя - управление 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? Или можно перехватить сразу все вспл. окна? Хотел бы закончить проект, а нигде найти такой информации не удалось Что я за человек..... как только сформулировал проблему, так сразу решение появилось.... ПРОСТИТЕ Если кому-то пригодится(ну а вдруг) Надо сделать следующее - дописать функцию переводящую все действия на себя Скрытый текст 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 Изменено 19 мая, 2017 пользователем Trix UPD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения