Tworzę skrypt użytkownika Grasemonkey, który robi się naprawdę duży.Czy można podzielić skrypty użytkownika Greasemonkey na wiele plików?
Czy mogę podzielić na kilka mniejszych plików? Jeśli tak to jak?
Tworzę skrypt użytkownika Grasemonkey, który robi się naprawdę duży.Czy można podzielić skrypty użytkownika Greasemonkey na wiele plików?
Czy mogę podzielić na kilka mniejszych plików? Jeśli tak to jak?
Tak, w Greasemonkey, jest to dość łatwe. Jeśli chcesz podzielić swoje skrypty do i18n.js
, a utils.js
i swój główny korpus skryptu (i miał je w takiej kolejności, w oryginalnym scenariuszu), po prostu zmienić nagłówka skryptu przeczytać coś takiego:
i18n.js:
var hello = 'bonjour!';
utils.js:
function say(msg) { alert(msg); }
my.user.js:
// ==UserScript==
// @name My nifty script
// @namespace Your unique author identifier
// @require i18n.js
// @require utils.js
// ==/UserScript==
say(hello);
... i Greasemonkey pobierze i zainstaluje wszystkie trzy pliki, łączą je w kolejności podanej przez swoich sprawozdaniach @require
(główny skrypt ostatni), i uruchom go jak zwykle. Umieść je w tym samym katalogu na serwerze, z którego je dystrybuujesz, lub podaj pełne adresy URL w instrukcjach @require
, gdzie znajdują się w sieci.
Oczywiście, że możesz. Na przykład, jeśli używasz Greasemonkey jak Mozilla dodatek, a następnie w config.xml
można użyć <Require>
:
<UserScriptConfig>
<Script filename="babelfish.yahoo.com.js" name="Babel Fish" namespace="html" basedir=".">
<Include>http://babelfish.yahoo.com/*</Include>
<Require filename="document.js"/>
<Require filename="cookie.js"/>
<Resource name="babelfishCSS" filename="babelfish.yahoo.com.css" mimetype=""/>
</Script>
...
Zarówno document.js
i cookie.js
powinny być w tym samym folderze co babelfish.yahoo.com.js
.
Jeżeli silnik wykorzystuje w plik adnotacji, a następnie użyć @require
dyrektywy:
// ==UserScript==
// @description This script automatically recovers the language selection.
// @include http://babelfish.yahoo.com/*
// @require cookie.js
// @require document.js
// @resource babelfishCSS babelfish.yahoo.com.css
// ==/UserScript==
Podczas gdy żadne z powyższych nie jest poprawne, 'config.xml' jest prywatnymi detalami implementacyjnymi Greasemonkey, nie ma potrzeby ręcznego wchodzenia w nie ręcznie, a czyniąc to i tak może powodować różnego rodzaju problemy, z których najgorsze prawdopodobnie jest Greasemonkey traci ścieżkę do wszystkich zainstalowanych skryptów. – ecmanaut
Jeśli wiesz, jak podzielić skrypty na mniejsze fragmenty bez pracy ręcznej - możesz podzielić się swoim podejściem. Powyższe porady działają dobrze dla mnie. –
To proste: wystarczy wyciąć go w oddzielnych plikach, jak chcesz, zmodyfikuj główny skrypt do '@ require' innych części w żądanej kolejności i ponownie zainstaluj główny skrypt (zachowując te same nazwy' @ name' i '@ namespace 'jako pierwotnie). Jeśli oryginalny skrypt nie ma podanego '@ namespace' lub' @ name', prawdopodobnie konieczne będzie również zapisanie go w tym samym adresie URL, w którym został zainstalowany przed ponowną instalacją. – ecmanaut