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 на странице следующим образом:

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. Содержимое 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>