북마크릿을 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에 종속되므로 콘솔에서 코드를 실행할 수는 없지만 "읽기 전용"모드에서 사용자 스크립트를 검사 할 수 있습니다. 이것은 이 버그 에서 처리되고 있습니다.