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>  
Другие вопросы по тегам