2012-07-26 24 views

Trả lời

4

Chỉ cần gửi kịch bản của bạn tại userscripts.org OpenUserJS.org (Hoặc một trong những thay thế userscripts.org khác).
Cố gắng đóng gói lại nó như một phần bổ trợ thường gặp nhiều rắc rối hơn là giá trị.


Nếu bạn thực sự phải, bạn có thể sử dụng the Greasemonkey script compiler để biến kịch bản của bạn thành một "add-on", và sau đó submit that add-on to Mozilla, via the normal add-on process.

Lưu ý rằng câu trả lời của Wladimir tốt hơn trình biên dịch tập lệnh Greasemonkey.



Userscripts.org is now long dead.

10

Trong khi bạn có thể "biên dịch" tập lệnh GreaseMonkey (xem câu trả lời của Brock), giải pháp này không được hỗ trợ chính xác. Tùy chọn đáng tin cậy hơn sẽ sử dụng số Add-on SDKJPM. tập tin lib/main.js của bạn có thể được thực sự đơn giản (page-mod module documentation):

var data = require("sdk/self").data; 
var pageMod = require("sdk/page-mod"); 
pageMod.PageMod({ 
    include: "*.example.com", 
    contentScriptWhen: 'end', 
    contentScriptFile: data.url("contentScript.js") 
}); 

này tương đương với tiêu đề kịch bản Greasemonkey sau:

// @include http://example.com/* 
// @include http://*.example.com/* 

Và sau đó bạn thêm kịch bản Greasemonkey của bạn như data/contentScript.js (Add-on SDK sẽ bỏ qua tiêu đề GreaseMonkey, thông tin được chỉ định ở nơi khác) và xây dựng phần mở rộng. Trong hầu hết các trường hợp, nó sẽ chỉ hoạt động - trừ khi tập lệnh GreaseMonkey của bạn sử dụng bất kỳ API GreaseMonkey đặc biệt nào trong khóa học, trong trường hợp đó bạn sẽ cần tìm một sự thay thế. unsafeWindow is supported bằng cách này (các cảnh báo thông thường được áp dụng).

+0

Bạn có ý nghĩa gì bởi "không được hỗ trợ chính xác"? Theo nghĩa "không/hiếm khi cài đặt" hoặc "Mã Bloated"? –

+1

@RobW: Ý tôi là: "giải pháp cổ xưa mà ai đó đã tấn công với nhau nhiều năm trước và không thực sự cập nhật kể từ". Nó là tối ưu hóa theo một số cách, như yêu cầu khởi động lại trình duyệt để cài đặt tiện ích, nhưng sẽ không có ai sửa lỗi đó. –

+1

Tôi đã cố gắng chỉnh sửa, nhưng họ không chấp nhận nó. Nhưng kịch bản chính xác này không hoạt động nữa. Tôi phải sửa đổi nó dựa trên tài liệu của Mozilla. 'var pageMod = require (" sdk/page-mod "); var self = require ("sdk/self"); pageMod.PageMod ({ bao gồm: "*", contentScriptWhen: 'sẵn sàng', contentScriptFile: [self.data.url ("contentScript.js")] }); ' – trlkly

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