20

Có cách nào để chuyển một tiện ích chrome sang các trình duyệt khác mà không phải viết lại hoàn toàn mã không? mở rộng chrome của tôi sử dụng lệnh browser_action để mở "popup.html" trong cửa sổ mở rộng ...Có cách nào để chuyển một tiện ích chrome sang các trình duyệt khác không?

Cập nhật: tôi thấy adblockforchrome port.js và thấy nó chỉ phần nào hữu ích cho porting Safari ...

Trả lời

4

Nó phụ thuộc vào loại mở rộng, nhưng không thực sự. Để trả lời câu hỏi của bạn rõ ràng hơn, bạn cần phải xác định tiện ích mở rộng của bạn là gì: sửa đổi một số trang (như userscripts/userstyles), mở rộng các tính năng của trình duyệt hoặc một số thứ khác.

Có một vài lưu ý tính di động, tuy nhiên, có thể giúp bạn đơn giản hóa quá trình này:

  1. Đừng viết mã cụ thể của trình duyệt. Trong một số trình duyệt hiện đại, bạn có thể sử dụng các tính năng HTML5, như API Cơ sở dữ liệu Web SQL. Ví dụ, rất khó để mô phỏng hành vi như vậy trên IE.
  2. Giữ mô đun JavaScript của bạn; không sử dụng các phương thức JavaScript cụ thể của nhà cung cấp và mã của bạn sẽ di động và sẽ không dựa vào TraceMonkey hoặc V8;
  3. HTML riêng biệt từ CSS và Javascript, không làm cho mã của bạn bẩn và phức tạp.
+2

Tại sao bạn quan tâm đến khả năng tương thích với IE? Nó không hỗ trợ phần mở rộng. – serg

+6

Nó thực hiện, nhưng theo cách rất “rất bất thường”. –

4

Apple provides some guidance về cách chuyển đổi tiện ích Chrome sang Safari, nhưng vấn đề bạn sắp gặp phải là mỗi trình duyệt có một bộ chức năng được phép khác nhau cho tiện ích mở rộng. Ngay cả với Chrome to Safari, có những thứ bạn có thể làm trong Chrome mà bạn không thể thực hiện trong Safari và ngược lại.

4

Nhảy chậm một chút.

Công ty chúng tôi - Slice Factory (tiết lộ đầy đủ ở đây!) Cung cấp dịch vụ chuyển đổi tiện ích mở rộng của trình duyệt: http://gallery.extensionfactory.com/labs/conversion/ Trong hầu hết các trường hợp, tiện ích chrome của bạn sẽ hoạt động liên tục trong FF và Safari.

Dịch vụ vẫn đang trong giai đoạn thử nghiệm beta và chuyển đổi Firefox đang hoạt động tốt hơn Safari. Tôi không thể tiết lộ đầy đủ giải pháp kỹ thuật của mình, nhưng đây là câu trả lời SO, tôi có thể thêm một vài chi tiết: chúng tôi đã phát triển lại một chồng api javascript đầy đủ bắt chước hầu hết các API tiện ích mở rộng của Chrome cho Safari và Firefox; trong Firefox, chúng tôi dựa trên công việc của chúng tôi trên JetChrome. Ngoài ra, chúng tôi có trình bao bọc đóng gói lại tiện ích chrome thêm thư viện của chúng tôi và viết lại các tệp kê khai, v.v.

Ngoài ra, nó chủ yếu là một vài ý tưởng hay, thử và sai và rất nhiều thời gian phát triển.

Ví dụ: Safari 5.1 vừa giới thiệu cửa sổ bật lên tương ứng với browser_action của Chrome, nhưng chúng tôi đã có giải pháp thay thế hoạt động cho các phiên bản trước. Firefox không hỗ trợ HTML5 WebSQL, nhưng chúng tôi có một API cho nó. Chúng tôi cũng cung cấp một cách để đưa các ứng dụng web vào FF và sớm đến Safari. Mục tiêu là có API Chrome làm tham chiếu và bắt chước nó trên tất cả các trình duyệt khác.

Nếu không đẩy bạn tới giải pháp của chúng tôi, tôi có thể thêm rằng thời gian để bao gồm đầy đủ API Chrome trên cả Safari và Firefox có thể không đáng - trừ khi bạn có kế hoạch chuyển đổi một số tiện ích mở rộng. Vì vậy, chỉ với một hoặc hai tiện ích mở rộng, tôi khuyên bạn nên tạo mã của mình làm mô-đun càng tốt và chỉ cần tạo ba tiện ích mở rộng - hoặc thử dịch vụ của chúng tôi!

+0

Ồ, và đối với IE có các webslices. Chúng tôi sử dụng chúng cho một sản phẩm khác của chúng tôi như là một 'thay thế' :) – Stefano

+0

Chỉ cần thử dịch vụ của bạn, nhưng thật đáng tiếc là nó không hoạt động. (ID: hcieonlgpadegedlcpdhndifhaeahajp, bkeiokdfjgnaglohebonlmpimnpinahd) –

+0

@StefanSchmidt không may là luôn có một số hạn chế! Người đầu tiên không hoạt động vì họ tìm kiếm một phần tử trong trang trước khi trang được tạo. Thật may mắn nó hoạt động trong chrome, thực sự. Cái thứ hai chuyển đổi và hoạt động tốt trong Firefox; nó không chuyển đổi trong safari vì định dạng hình ảnh không được hỗ trợ, tôi đã khắc phục điều đó nhưng có khả năng nó sẽ không hoạt động do tách cookie giữa cửa sổ bật lên và các trang trong Safari. Nếu bạn có thêm sự quan tâm, vui lòng liên hệ với tôi qua email ở cuối trang web! – Stefano

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