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 это было возможно... если я не сойду с ума.
Ответы
Ответ 1
Расширения Chrome и их скрипты содержимого также загружаются, когда Chrome запускается в режиме приложения.
Итак, вы можете создать простое расширение, которое вводит код JavaScript на странице следующим образом:
{
"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. Содержимое script
Затем создайте файл с именем contentscript.js
и добавьте нужный код JavaScript.
Этот script включен при каждой загрузке сопоставленной страницы. Доступны все методы DOM через объект document
. Однако window
и document.defaultView
не указывают на объект window
на странице [source].
Если вы хотите получить доступ к глобальным методам или свойствам, вам необходимо динамически создать <script>
и ввести его на страницу (см. Построение расширения Chrome - код вставки в страницы с использованием содержимого script).
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, который будет введен.
Затем создайте файл с именем script.js
и поместите его в ту же папку, что и manifest.json
и contentscript.js
. Код в script.js
выполняется так, как если бы это была истинная часть затронутой страницы.
Ссылка на скрипты содержимого доступна здесь.
Ответ 2
Я предполагаю, что вы хотите включить 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>