Можно ли сделать часть браузера прозрачной для отображения основного рабочего стола / окон в веб-приложении? - PullRequest
22 голосов
/ 07 июля 2010

Я занимаюсь разработкой веб-приложения (предназначенного для работы в качестве расширенного клиента и способного позволить себе требовать любую (даже ночную сборку) версию Firefox из Chromium).

Фон интерфейса приложения должен быть прозрачным (отображать основные окна или рабочий стол). Как мне этого добиться? Следование стандартам не имеет значения, но было бы неплохо.

Основной целевой платформой является Linux.

ОБНОВЛЕНИЕ адресация комментариев и ответов, полученных к моменту 2010-07-07T01: 44Z .

Технически ничего не значит о взаимодействии кода и разрушении «песочницы». Это про композицию окон. Я даже думаю, что это может быть реализовано довольно просто в композитном оконном менеджере без браузера, даже не подозревая об этом - просто замените какой-нибудь бесполезный цвет (например, «фуксия» широко использовалась для этого в эпоху Windows 9x) на содержимое базового слоя.

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

Причина, по которой почему бы мне это понравилось, заключается в том, что я хочу создать кроссплатформенное (Linux, Windows, Mac) приложение с нулевой установкой и привлекательным клиентом (не предназначено для обслуживания). как веб-сайт в Интернете) с веб-технологиями (такими как HTML5, CSS3 и JavaScript). Возможно, я даже попытаюсь использовать какую-нибудь технологию без окон для браузера (я слышал о Mozilla Prism, и XulRunner, KDE и Windows предлагают использовать HTML для настольных виджетов, Chromium предлагает нечто подобное и т. Д.)

Ответы [ 5 ]

4 голосов
/ 07 июля 2010

Это невозможно "в настоящее время", но нет технической причины, по которой браузер не может предоставить собственный API для этого, используя нестандартный html / css / js.

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

ОБНОВЛЕНИЕ (поскольку некоторые люди, возможно, неправильно поняли мой ответ ???):

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

Кроме того, это не нарушит модель песочницы.Сам браузер (на секунду забудь API) может реализовывать прозрачность так, как ему хочется.Как только он сможет подключить его к своему движку Javascript и создать глупый вызов: Chrome.Element (""). WeirdTransparency ()

ОБНОВЛЕНИЕ до обновления вопросов:

до вашей точки:

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

AIR своего рода покрывает 90% или ваши требования.Это все еще требует небольшой установки, но кроме этого, вы работаете ...

3 голосов
/ 07 июля 2010

Я уверен, что разработчикам браузеров понадобится много «вдохновения» - иначе $$$, чтобы сделать это.В настоящее время это не та особенность, которую ищут многие люди.

Поскольку соответствие стандартам занимает очень высокое место в списке приоритетов для всех разработчиков браузеров, сделать это «из коробки» было бы проблемой.А именно потому, что для него нет поддержки CSS / HTML, а стандартом является наличие белого фона.Это означает, что им понадобится пользовательский «флаг» где-нибудь в разметке, чтобы сказать ему, чтобы он выключал белый фон.

Это будет эксклюзивно для браузера, который реализует «функцию»и любой другой, использующий любой другой браузер, не будет причастен к нему.

2 голосов
/ 13 декабря 2017

Это возможно в Электрон. Установив прозрачный фон на корпус.

0 голосов
/ 28 февраля 2013

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

Для получения фона я помещаю местоположение этого на моем ПК прямо сейчас.Но я думаю, что должен быть какой-то программный способ сделать это.enter image description here

Это работает для наших локальных рабочих столов.Но идея, о которой вы говорите, вам определенно необходима вещь, похожая на призму.Но Firefox, похоже, остановил этот проект для всех.(Хотя я храню дамп в своем ПК).Поэтому у недавних пользователей не было бы призмы, даже если бы вы указали им установить ее на своих ПК.

И затем, это работает, если изображение полноразмерно, чтобы соответствовать рабочему столу.В противном случае, мы должны повторить это, и весь рабочий стол выглядит абсурдным.Я часто пытаюсь написать приложения AIR (платформа Adobe RIA для настольных ПК) на мой вкус.

Я думаю, вам стоит попробовать изучить Adobe AIR.Фактически, он поддерживает все открытые технологии. Я не являюсь сотрудником Adobe, хотя :), если вы считаете, что я продвигаю AIR.

0 голосов
/ 07 июля 2010

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

...