Block Opener on Targeted Links

Add rel attribute values on mouseup to block window.opener in the linked site, also blocks referer (2016-09-01)

< Spätná väzba na Block Opener on Targeted Links

Hodnotenie: Dobré - skript funguje

§
Pridaný: 28.01.2017

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);

Pridať odpoveď

Aby ste mohli pridať odpoveď, prihláste sa.