HTA-х; использовать другой браузер для размещения? - PullRequest
7 голосов
/ 14 июня 2009

Если метод Microsoft для использования IE в качестве локального хоста для HTA, могу ли я вместо этого использовать любой другой браузер?

Ответы [ 5 ]

11 голосов
/ 14 июня 2009

Вы не можете.

Существует аналогичный проект Mozilla с именем XULRunner , но HTA работает только в Internet Explorer - две технологии несовместимы.

Чтобы прояснить это: HTA , вероятно, не будет работать во всем, что не является IE. Да, HTA - это элемент управления браузером в окне, но он также имеет обычные права на применение (то есть доступ к файловой системе, реестр, выполнение произвольного кода и т. Д.). При работе в браузере эти привилегии запрещены (по уважительным причинам - вам не нужно, чтобы какая-либо веб-страница читала ваши файлы).

Итак, запуск HTA в браузере будет работать, но любое взаимодействие с локальной системой не удастся, что сводит на нет всю идею. Запуск HTA в XULRunner также не удастся, потому что XULRunner использует совершенно другой API.

Единственный сценарий, который может сработать, заключается в следующем: веб-приложение, которое не использует какой-либо специфичный для HTA ​​или XULRunner API (т.е. ведет себя как обычное приложение для браузера). В таком случае ваше приложение может работать с HTA, XULRunner, а также с любым браузером. Между прочим, это лишило бы любого преимущества использования HTA ​​и привело бы к огромным дырам в безопасности из-за более высоких привилегий; для этого вам лучше использовать Google Chrome или Mozilla Prism.

(Некоторое время мы пытались найти кросс-браузерное решение, и HTA определенно не тот)

8 голосов
/ 01 февраля 2011

Я решал связанную с этим задачу запуска hta из разных браузеров. Я разместил здесь свои выводы для всех, кто пытается это сделать и находит этот вопрос.

Вы можете запускать hta из нескольких браузеров, используя тот же исполняемый файл mshta, который использует IE. Вам нужны полностью квалифицированные URI в вашем hta-коде, который не требуется в IE.

Сегодня (2011-02-01) Я пытался использовать hta из Firefox (3.6.13) , Opera 11 и Safari для Windows 5.0.3 .

После некоторых проблем с прорезыванием зубов в Firefox Я заставил hta работать из этих браузеров. (Во всех случаях эти используют тот же исполняемый файл mshta , который использует IE. Это , но не hta работает в других браузерах , но работает с hta из других браузеров . Это может соответствовать вашим целям.)

hta запустил настольные приложения на моем компьютере (как это происходит в IE).

Опыт не был идеальным . Для IE я установил относительные пути root в hta. Для других браузеров вы не можете сделать это. Вам необходимо установить полностью квалифицированные URI для таких вещей, как изображения, ссылки на hta и значки.

Итак, после небольшого редактирования у меня работает hta из 4 браузеров (IE 8, FF 3, Opera 11 и Safari 5 (Windows)).

(Быстрый снимок этого. Я запускаю hta с веб-сервера на локальном компьютере. (У меня нет планов запускать их с удаленных сайтов.) Это позволяет моему рабочему процессу переходить с браузера на рабочий стол подробнее hta запускает локальные приложения, которые выполняют такие вещи, как редактирование веб-страниц (включая сами hta), проверку этих страниц и запуск IDE. Преодоление разрыва между браузерными и настольными приложениями. Это очень полезный опыт. Я рекомендую!)

Примечания:

  1. Команда разработчиков Firefox имеет заметки о включении hta, которые побудили меня продолжить после первоначального сбоя.
  2. Для достижения этой цели в конфигурации Firefox Я установил приложения HTML для запуска под mshta.exe (называемый Microsoft HTML Application Host, в поле со списком) . Первоначально это не сработало. Я выбрал «другое» выбрал то же приложение вручную. Это сработало, хотя у меня есть две одинаково выглядящие записи! Вам нужен mshta.exe на вашем компьютере для запуска любого браузера . Я предполагаю, что нормальный способ установить mshta с IE. ( mshta по сути является модифицированной версией IE, возможно, не текущей версией! )
  3. Разработчики Firefox отметили это как стратегическое усилие по вытеснению IE из Предприятия. Их реализация (и Opera) заставляет вас использовать полностью квалифицированные URI, но кроме этого hta работает как положено.
  4. Firefox, похоже, кеширует старые версии hta и не загружает новые, хотя, похоже, что-то скачивает! Вам может понадобиться очистить кеш во время разработки.
  5. Моя первая попытка сделать это с Chrome не удалась. Дальнейшие исследования показывают, что Chrome не имеет собственного интерфейса для вызова других процессов в зависимости от их расширения.
2 голосов
/ 27 июня 2009

Это не столько что IE размещает что-либо, но что mshta.exe содержит компоненты, которые он разделяет с IE. MSHTA - это хост скриптов , так же, как CScript и WScript. Хотя IE также является хостом скриптов (в самом строгом смысле этого слова), его основная цель - быть веб-браузером.

Проект Mozilla, упомянутый ранее, является наиболее близкой альтернативой, которую я нашел, основанной на внутренностях браузера.

Другие хосты скриптов существуют и для Windows. Одним из них является NS Basic / Desktop , но оно основано на стандартных элементах управления Windows, а не на визуализации браузера и HTML DOM.

1 голос
/ 13 мая 2018

Просто чтобы прояснить: это не IE или MSHTMA, который действительно отображает веб-страницу. Рендеринг частично встроен в ОС. Таким образом, такие вещи, как Active Desktop (кто-нибудь помнит эту вещь XP?) Или .HTA или .CHM работают без IE. Это точно так же, как распознать некоторые вещи HTML.

0 голосов
/ 14 июня 2009

Я считаю, что хостинг приложений HTA в Internet Explorer работает, потому что их хост HTA зарегистрирован для обработки расширения. Если это действительно так, то в theroy может быть использован другой хост

Для полноты картины должен отметить, что я не имею опыта разработки приложений HTA и основываю свой ответ на своем понимании ОС Windows

...