Anda dapat mencoba mengubah bookmarklet Anda menjadi skrip pengguna GreaseMonkey . Mereka berjalan di lingkungan istimewa dan tidak tunduk pada CSP.
Namun tentu saja maksud skrip pengguna dan bookmarklet berbeda - skrip pengguna berjalan secara otomatis saat bookmarklet diminta. Anda dapat menghindari hal ini misalnya dengan membuat a <button>
dalam skrip pengguna, menambahkannya ke halaman, dan mengatur onclick
pendengar acara pada tombol itu untuk memecat kode bookmarklet.
Kode harus seperti ini:
// ==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);
Diambil hampir secara harfiah dari skrip pengguna saya yang juga menargetkan GitHub. Anda dapat men-debug debugger;
skrip pengguna di Firebug menggunakan kata kunci dalam skrip.
Perhatikan bahwa Firebug sendiri untuk saat ini juga tunduk pada CSP, jadi Anda tidak dapat mis. Mengeksekusi kode di konsol (tetapi Anda dapat memeriksa skrip pengguna Anda dalam mode "read-only"). Ini sedang dirawat di bug ini .