Google Chrome "Ярлык приложения": как автоматически загружать JavaScript?
Вступление
В Google Chrome есть функция, которая позволяет создавать ярлыки для веб-страниц и делать их похожими на традиционные настольные приложения.
Например, ярлык на Twitter для мобильных устройств может быть
C:\Users\<username>\AppData\Local\Google\Chrome\Application\chrome.exe --app=https://mobile.twitter.com/
Значок файла для этого приложения хранится в
C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Web Applications\mobile.twitter.com\https_80
Мой вопрос
Прошло много времени с тех пор, как я использовал эту функцию, и я помню, что вы могли добавить свои собственные файлы JavaScript в папку приложения, которые были включены при загрузке приложения. Тем не менее, я не могу найти документацию, которая обсуждает эту функцию, но я на 99% уверен, что она существует.
У кого-нибудь есть какие-либо подробности, если эта функция доступна и какие файлы мне нужно создать?
осветление
Я в основном открываю веб-страницу с помощью "Ярлыка приложения" в Chrome и хочу, чтобы она обновлялась каждые x секунд. Тем не менее, я не могу контролировать эту веб-страницу.
Я уверен, что в старых версиях Chrome это было возможно... если только я не схожу с ума.
2 ответа
Расширения Chrome и их скрипты содержимого также загружаются при запуске Chrome в режиме приложения.
Таким образом, вы можете создать простое расширение, которое вставляет код JavaScript в страницу следующим образом:
1. Создать manifest.json
файл:
{
"name": "Run code on twitter mobile",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [{
"js": ["contentscript.js"],
"matches": ["http://mobile.twitter.com/*"]
}],
"web_accessible_resources": ["script.js"]
}
2. Содержание скрипта
Затем создайте файл с именем contentscript.js
и добавьте нужный код JavaScript.
Этот скрипт включается при каждой загрузке соответствующей страницы. Все методы DOM, через document
Объект доступен напрямую. Тем не мение, window
а также document.defaultView
не указывать на window
объект на странице [источник].
Если вы хотите получить доступ к глобальным методам или свойствам, вы должны динамически создать <script>
и вставьте его на странице (см. " Создание расширения Chrome - вставка кода на страницу с помощью сценария содержимого").
contentscript.js
var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
s.parentNode.removeChild(s);
};
3. Сценарий, который будет введен.
Затем создайте файл с именем script.js
и поместите его в ту же папку, что и manifest.json
а также contentscript.js
, Код в script.js
выполняется так, как если бы это была истинная часть затронутой страницы.
Ссылка на скрипты контента доступна здесь.
Я предполагаю, что вы хотите включить javascript для некоторого "запуска" приложения, возможно, чтобы изменить размер окна при загрузке целевого URL?
Вот то, что вы могли бы сделать, как предлагается в этом посте
Создайте HTML-страницу локально, которая содержит JavaScript, который вам нужно запустить.
Изменить это:C:\Users\<username>\AppData\Local\Google\Chrome\Application\chrome.exe --app=https://mobile.twitter.com/
к этому:
C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\Application\chrome.exe” –app=file:///C:/Documents%20and%20Settings/<username>/My%20Documents/My
%20Custom%20Shortcuts/twitter_mobile_launcher.html
и ваш файл twitter_mobile_launcher.html будет выглядеть так:
<html>
<head>
<script type="text/javascript">
// Do what you need with your javascript, for example, resizing your window...
window.resizeTo(300,400);
window.moveTo(300,0);
window.location = "https://mobile.twitter.com/";
</script>
</head>
<body>
<h1>If you see this, the redirect did not work properly.</h1>
</body>
</html>