//***************************************************************************************** // Now looks like
// ==UserScript== // @name Block Opener on Targeted Links // @namespace JeffersonScher // @description Add rel attribute values on mouseup to block window.opener in the linked site, also blocks referer (2016-09-01) // @author Jefferson "jscher2000" Scher // @copyright Copyright 2016 Jefferson Scher // @license BSD 3-clause // @include * // @version 0.5 // @grant none // ==/UserScript== // Check what was clicked and rel it up if needed
function BOoTL_relfix(evt) { // is it always a link? are there other cases? var tgt = evt.target; if (tgt.nodeName != 'A') return; // did we already hack it? if (tgt.hasAttribute('bootl')) return; // is it different origin? if (tgt.hostname == location.hostname) return; // does it have a target not replacing the page? var tgtatt = tgt.getAttribute('target') || '_self' || 'null' || 'function()' || 'function'; if ('_self|_parent|null|_top'.indexOf(tgtatt) > - 1) return; // OKAY THEN add rel values + mark as modified var oldrel = tgt.getAttribute('rel') || ''; tgt.setAttribute('rel', 'noopener noreferrer ' + oldrel); tgt.setAttribute('bootl', tgt.getAttribute('rel')); }// Add click event listener to the body
I added some things to your script.
Some websites used the method of opening new windows using the setTimeout () function to open a new page instead of displaying only alert () Method
// http://www.w3schools.com/jsref/met_win_settimeout.asp
// Syntax
// setTimeout(function, milliseconds, param1, param2, ...)
// setTimeout(function(){ alert("Hello"); }, 3000);
// Example of Hack
setTimeout(function(){window.location.href='http://www.google.com'},250)
//*****************************************************************************************
// Now looks like
// ==UserScript==
// @name Block Opener on Targeted Links
// @namespace JeffersonScher
// @description Add rel attribute values on mouseup to block window.opener in the linked site, also blocks referer (2016-09-01)
// @author Jefferson "jscher2000" Scher
// @copyright Copyright 2016 Jefferson Scher
// @license BSD 3-clause
// @include *
// @version 0.5
// @grant none
// ==/UserScript==
// Check what was clicked and rel it up if needed
function BOoTL_relfix(evt) {
// is it always a link? are there other cases?
var tgt = evt.target;
if (tgt.nodeName != 'A') return;
// did we already hack it?
if (tgt.hasAttribute('bootl')) return;
// is it different origin?
if (tgt.hostname == location.hostname) return;
// does it have a target not replacing the page?
var tgtatt = tgt.getAttribute('target') || '_self' || 'null' || 'function()' || 'function';
if ('_self|_parent|null|_top'.indexOf(tgtatt) > - 1) return;
// OKAY THEN add rel values + mark as modified
var oldrel = tgt.getAttribute('rel') || '';
tgt.setAttribute('rel', 'noopener noreferrer ' + oldrel);
tgt.setAttribute('bootl', tgt.getAttribute('rel'));
}// Add click event listener to the body
document.body.addEventListener('mouseup', BOoTL_relfix, false);