Bạn có thể thử để chuyển đổi bookmarklets của bạn để GreaseMonkey userscripts. Họ chạy trong một môi trường đặc quyền và không phải chịu CSP.
Tuy nhiên, tất nhiên ý định của usercripts và bookmarklets là khác nhau - usercripts chạy tự động trong khi bookmarklets theo yêu cầu. Bạn có thể phá vỡ điều này, ví dụ như bằng cách tạo một <button>
trong mô tả người dùng, nối nó vào trang và đặt một trình onclick
lắng nghe sự kiện trên nút đó để kích hoạt mã của bookmarklet.
Mã nên đi như thế này:
// ==UserScript==
// @name Name
// @description Description
// @version 0.1
// @namespace example.Lekensteyn
// @grant none
// @include http*://github.com/*/*/commit/*
// ==/UserScript==
var myBookmarklet = function () {
// here goes the code of the bookmarklet
};
var newButton = document.createElement('button');
newButton.innerHTML = 'Execute my bookmarklet';
newButton.addEventListener('click', function(evt) {
myBookmarklet();
});
document.getElementById('someElement').appendChild(newButton);
Lấy gần như theo nghĩa đen từ usercript của tôi cũng đang nhắm mục tiêu GitHub. Bạn có thể gỡ lỗi mô tả người dùng trong Fireorms bằng debugger;
từ khóa trong tập lệnh.
Tuy nhiên, xin lưu ý rằng bản thân Fire hiện tại cũng phải tuân theo CSP, do đó, bạn không thể thực thi mã trong bảng điều khiển (nhưng bạn có thể kiểm tra mô tả người dùng của mình ở chế độ "chỉ đọc"). Điều này đang được quan tâm trong lỗi này .