Skip to content

Instantly share code, notes, and snippets.

@calaveraInfo
Last active December 14, 2017 12:52
Show Gist options
  • Save calaveraInfo/4c5a2a156a2061d1378dc3894b7cfb8d to your computer and use it in GitHub Desktop.
Save calaveraInfo/4c5a2a156a2061d1378dc3894b7cfb8d to your computer and use it in GitHub Desktop.
Bookmarklet helper for adding global Ajax callbacks manualy from console.
var urls = [];
setAjaxCallback(function() {
var match = this.responseText.match(/"web.clip","[^"]*/);
if (!match) {
match = this.responseText.match(/"WebClipper for Firefox","[^"]*/);
}
console.log(match);
if (match) {
urls = urls.concat(match);
}
});
function addAjaxCallback(callback, replace = false){
var oldOpen, i;
if( XMLHttpRequest.callbacks ) {
if (replace) {
XMLHttpRequest.callbacks = [callback];
} else {
XMLHttpRequest.callbacks.push( callback );
}
} else {
XMLHttpRequest.callbacks = [callback];
oldOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(){
for( i = 0; i < XMLHttpRequest.callbacks.length; i++ ) {
this.addEventListener('load', XMLHttpRequest.callbacks[i]);
}
oldOpen.apply(this, arguments);
}
}
}
function setAjaxCallback(callback) {
addAjaxCallback(callback, true);
}
function removeAjaxCallbacks() {
XMLHttpRequest.callbacks = [];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment