Управление .NET WebBrowser с помощью Adobe SVG Viewer - PullRequest
0 голосов
/ 07 января 2009

У меня проблемы с загрузкой файлов SVG в элемент управления .NET 2.0 WebBrowser. Если я создаю новый проект приложения WinForms, перетаскиваю элемент управления WebBrowser и кнопку на поверхность конструктора Form1.cs и добавляю строку в обработчик нажатия кнопки, чтобы установить свойство Url элемента управления WebBrowser в файл SVG. получить две ошибки сценария IE во время выполнения (например, в диалоговом окне, которое появляется при возникновении проблемы с Javascript). Поэтому единственная строка кода, которую я пишу:

webBrowser1.Url = new Uri(@"http://wiki.allegro.cc/pub/f/fb/Grozilla.svg");

Этот файл SVG загружается нормально, если я перехожу непосредственно к ссылке с IE; ошибки, которые я получаю через мое тестовое приложение:

line 2, char 1, error: Invalid character, followed by
line 1, char 1, error: Object expected

(при условии, что я отвечу «да» на приглашение «продолжить выполнение сценариев на этой странице»).

Я использую IE 7.0.5730.13, Adobe SVG Viewer 3.03 build 94, Visual Studio 2008. Кто-нибудь может повторить это? Кто-нибудь видел это / понял, как это исправить?

(правка: ранее устанавливал URL в конструкторе для целей примера, но это поднимало вопрос о том, закончилась ли инициализация элемента управления, поэтому изменили пример для использования кнопки - проблема все еще возникает. Эта ошибка изначально появилась в рабочем коде, поэтому пример программы, которую я написал, был попыткой выделить проблему и воспроизвести ее настолько просто, насколько это возможно.)

(правка 2: после тестирования на нескольких разных машинах эта проблема, похоже, связана с IE7 - запустите IE6, и все работает нормально.)

Ответы [ 2 ]

0 голосов
/ 09 января 2009

Похоже, что добавление исходного сайта SVG-файла в мой список доверенных сайтов решает проблему, поэтому это связано с безопасностью IE.

0 голосов
/ 07 января 2009

Я обнаружил, что при работе с веб-браузером нельзя выполнять вызовы для перехода на страницу при создании элемента управления.

Я справился с этим, создав таймер, который срабатывает один раз при загрузке формы (включите его в конструкторе), а затем в обработчике событий для таймера, вызывайте Navigate или устанавливайте свойство Url, и оно должно работать.

Я не могу сказать вам почему хоть и ради меня.

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