2012-01-01 21 views

Trả lời

13

Vâng, và trong Greasemonkey, nó khá dễ dàng. Nếu bạn muốn chia kịch bản của bạn vào i18n.js, một cơ thể kịch bản chính utils.js và bạn (và đã có chúng theo thứ tự trên kịch bản gốc), chỉ cần thay đổi tiêu đề kịch bản của bạn để đọc một cái gì đó như thế này:

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); 

... và Greasemonkey sẽ tải về và cài đặt tất cả ba tác phẩm, tham gia cùng họ lên theo thứ tự được liệt kê bởi @require báo cáo của bạn (kịch bản chính cuối cùng), và thực hiện nó như thường lệ. Đặt chúng vào cùng một thư mục trên máy chủ mà bạn phân phối chúng hoặc đảm bảo cung cấp URL đầy đủ trong các câu lệnh @require đến nơi chúng cư trú trên mạng.

0

Tất nhiên bạn có thể. Ví dụ, nếu bạn sử dụng Greasemonkey như Mozilla addon, sau đó trong config.xml bạn có thể sử dụng <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> 
... 

Cả document.jscookie.js phải ở trong cùng một thư mục như babelfish.yahoo.com.js.

Nếu động cơ của bạn sử dụng trong tập tin chú thích, sau đó sử dụng @require chỉ:

// ==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== 
+0

Trong khi không có thông tin nào ở trên không chính xác, 'config.xml' là chi tiết triển khai riêng của Greasemonkey, không cần phải chọc tức theo cách thủ công, và làm như vậy có thể gây ra mọi vấn đề, Greasemonkey mất dấu vết của tất cả các tập lệnh đã cài đặt của bạn. – ecmanaut

+0

Nếu bạn biết cách tách các tập lệnh thành các phần nhỏ hơn mà không cần thao tác thủ công - bạn có thể chia sẻ cách tiếp cận của mình. Trên đây là những công trình tốt cho tôi. –

+0

Thật dễ dàng: Chỉ cần cắt nó thành các tệp riêng biệt theo ý muốn, chỉnh sửa tập lệnh chính thành '@ require' các phần khác theo thứ tự mong muốn và cài đặt lại tập lệnh chính (giữ cùng' @ name' và '@ namespace' như nó đã có ban đầu). Nếu tập lệnh gốc của bạn không được chỉ định '@ namespace' hoặc' @ name', bạn có thể cũng cần lưu nó vào cùng một URL như bạn đã cài đặt trước khi cài đặt lại. – ecmanaut

Các vấn đề liên quan