2010-10-07 6 views

ответ

0

Если вы не хотите переустанавливать скрипт, вы можете перезапустить хром.
Это должно вносить изменения в ваши изменения.

Я согласен, это очень раздражает

3

Вы можете сделать это, если у вас есть где-то сервер, где вы можете импортировать измененный файл.

Как это

// a function that loads jQuery and calls a callback function when jQuery has finished loading 
function addJQuery(callback) { 
    var script = document.createElement("script"); 
    script.setAttribute("src", "http://server.url/Custom/jquery.min.js"); 
    script.addEventListener('load', function() { 
    var script = document.createElement("script"); 
    script.textContent = "(" + callback.toString() + ")();"; 
    document.body.appendChild(script); 
    }, false); 
    document.body.appendChild(script); 
} 

function addScript(callback) { 
    var script = document.createElement("script"); 
    script.setAttribute("src", "http://server.url/Custom/Custom script.js"); 
    script.addEventListener('load', function() { 
    var script = document.createElement("script"); 
    script.textContent = "(" + callback.toString() + ")();"; 
    document.body.appendChild(script); 
    }, false); 
    document.body.appendChild(script); 
} 

// load jQuery and execute the init function 
addJQuery(addScript); 

Это загружает первый JQuery тогда мой пользовательский сценарий, когда я запустить веб-страницу, всегда перегружает весь сценарий.

Возможно, это тоже поможет.

+0

Блестящий! Почему больше людей не говорят об этом методе? –

13

Да, есть способ сделать это. Используя метод, принятый от this brilliant answer (^ _ ^), вы можете редактировать сценарии - на месте - и просто нажать ссылку «Обновить», чтобы изменения вступили в силу.

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

Вот как настроить рабочую среду, чтобы позволить легко обновлять скрипт:

  1. Создайте каталог, который удобно для вас, и не там, где Chrome обычно ищет расширения . Например, Create: C:\MyChromeScripts\.
    Это будет место, где все ваши сценарии будут жить в будущем.

  2. Для каждого сценария создайте свой собственный подкаталог. Например, Script_1, Script_2 и т.д.

  3. Каждый подкаталог должен содержать свой сценарий, EG MyScript1.user.js, а также любые файлы, используемые этим скриптом.

  4. Теперь для секретного соуса ... Вы также должны создать файл манифеста в этом подкаталоге, и его необходимо назвать: manifest.json.

    Пример содержания, как минимум:

    { 
        "manifest_version": 2, 
        "content_scripts": [ { 
         "exclude_globs": [ ], 
         "include_globs": [ "*" ], 
         "js":    [ "MyScript1.user.js" ], 
         "matches":   [ "https://stackoverflow.com/*", 
               "https://stackoverflow.com/*" 
              ] 
        } ], 
        "description": "This script does X, Y, and Z.", 
        "name":   "My script number 1", 
        "version":  "1" 
    } 
    


  5. Теперь в менеджере расширений Chrome (URL = хром: // расширения/) Развернуть Режим разработчика ,

  6. Щелкните Загрузить распакованное расширение ... кнопку.

  7. Для папки, вставить в папку для вашего скрипта, например:
    C:\MyChromeScripts\Script_1.

  8. Ваш скрипт будет установлен и функционирует.

  9. Продолжить Расширения страница открыта. Теперь, когда вы сохраняете какие-либо изменения в * .js-файле, нажмите Обновить ссылка для их вступления в силу немедленно.

  10. Наслаждайтесь!



Папка расширений по умолчанию:

 
Windows XP: 
C:\Documents and Settings\***{username}***\Local Settings\Application Data\Google\Chrome\User Data\Default 

Windows Vista: 
C:\Users\***{username}***\AppData\Local\Google\Chrome\User Data\Default 

Windows 7: 
C:\Users\***{username}***\AppData\Local\Google\Chrome\User Data\Default 

Хотя вы можете изменить его, запустив Chrome с опцией --user-data-dir=.

+0

Это здорово, есть ли способ посмотреть каталог? Мне все равно нужно перейти на страницу расширений. –

+0

@BartlomiejLewandowski, Не то, что я знаю, но не соблюдал изменения Chrome, так как они укоренили собственные скрипты. –

0

Самый простой способ сделать это состоит в использовании двух файлов:

  • userscript.user.js с GM заголовков, которые загружает script.js. Вы можете очистить кеш каждый день (скажите, чтобы он загружал script.js с добавленной случайной строкой запроса)
  • script.js, который содержит фактический скрипт.

Например, я сделал это here

//#!userscript.user.js 

// ==UserScript== 
//GM headers 
// ==/UserScript== 


(function(){ 
    var d=new Date(); 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src="script.js?purge="+d.getMonth()+""+d.getDay(); //appends a new query string every day. This evades browser cache 
    document.body.appendChild(script); //you can append to `head` as well, I used body here sine I needed jQuery already loaded 
})(); 

Скрипт загружает script.js?purge=xyz, где xyz зависит от даты. Строка запроса чистки гарантирует, что сценарий будет кэшироваться только в течение дня, а не больше - на следующий день он будет загружен заново. Для использования в целях развития, "script.js?purge="+Math.random() лучше. Если скрипт находится на вашей локальной машине, вам не нужно беспокоиться о кеше для себя.

Теперь, если вы внесете изменения в script.js, завтра каждый будет использовать обновленную версию.

Смежные вопросы