2009-06-14 2 views

ответ

10

Вы не можете.

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

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

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

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

(Мы пытались найти решение кроссбраузерный в течение некоторого времени, и HTA, безусловно, не так ли)

0

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

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

2

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

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

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

6

Я занимался связанной задачей запускать 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 запустил настольные приложения на моем компьютере (как и у IE).

Опыт не был совершенным. Для IE я устанавливаю корневые относительные пути в 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 нет встроенного интерфейса для вызова других процессов на основе их расширения файла.
Смежные вопросы