в приложении MFC, над которым я работаю, мне нужен Internet Explorer (мы используем компонент CHtmlView), в настоящее время мы можем изменить режим рендеринга, в котором работает IE, с помощью FEATURE_BROWSER_EMULATION ключи реестра.Однако это только позволяет нам изменить режим рендеринга всех экземпляров CHtmlView в приложении, плюс для применения этого изменения мы должны перезапустить приложение.
Проблема в том, что мы хотели бы иметь более одной версии IEотображается бок о бок в нашем приложении.Я знаю, что можно получить несколько версий IE на одном компьютере, но я не уверен, как получить их все в одном приложении.
У нас есть некоторые идеи, как решить эту проблему, но они не совсемТривиальные решения, поэтому я хочу спросить ваши идеи.В любом случае, вот что мы придумали:
Загрузите исходный код страницы, добавьте тег совместимости документа , измените все адреса вдокумент к абсолютным, и сохраните эту страницу на диск.Затем перезагрузите страницу с диска с помощью IE.Это решение работает только частично, потому что, хотя оно заставляет IE использовать правильный режим рендеринга, странице не удается загрузить некоторые ресурсы, потому что она находится в другом месте, чем оригинал - адреса, которые мы изменили, работают хорошо, но, например,сгенерированные JavaScript этого не делают.И это решение, как правило, очень грязное, поэтому мы его упустили.
Использование нескольких процессов - каждая версия IE будет иметь свою собственную исполняемую библиотеку / dll, мы используем эмуляцию браузера функцию на каждом исполняемом файле, а затем каким-то образом склеить это в одно приложение (я признаю, я понятия не имею, как, поскольку я никогда не использовал несколько процессов с Windows / MFC).Но я не знаю, будет ли это решение работать ...
Создайте прокси для нашего приложения, которое изменит загруженный исходный код так же, как решение 1представляет - он добавит тег совместимости документов , чтобы принудительно включить IE в нужный режим, но он может оставить адреса нетронутыми, поскольку IE будет видеть источник как исходящий из исходного местоположения.Это решение кажется мне наиболее безопасным, но, как и в решении 2., я не знаю, как создать прокси-слой для нашего приложения, и, что более важно, сколько времени это займет.
Итак, у вас есть идеи, как еще это можно решить?Если решение использует что-то отличное от CHtmlView, пусть так и будет, мы всегда можем это изменить.Что касается версий IE, мы хотели бы иметь, было бы неплохо поддерживать IE6, но это необязательно, самая низкая требуемая версия - IE7.
Спасибо за ваше время, любые идеи будут оценены.