ブックマークレットをGreaseMonkeyユーザースクリプトに変換してみてください。これらは特権環境で実行され、CSPの影響を受けません。
ただし、もちろんユーザースクリプトとブックマークレットの意図は異なります-ブックマークレットがオンデマンドである間、ユーザースクリプトは自動的に実行されます。これを回避するには、たとえば<button>
、ユーザースクリプトでを作成し、ページに追加し、onclick
そのボタンにイベントリスナーを設定してブックマークレットのコードを起動します。
コードは次のようになります。
// ==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);
GitHubをターゲットにしているユーザースクリプトからほぼ文字どおりに取得します。debugger;
スクリプト内のキーワードを使用して、Firebugでユーザースクリプトをデバッグできます。
ただし、Firebug自体も現在はCSPの対象であるため、コンソールでコードを実行することはできません(ただし、「読み取り専用」モードでユーザースクリプトを検査できます)。これはこのバグで対処されています。