// https://github.com/baivong/Userscript/tree/master/popup_blocker var log = document.getElementById('log'), $link = $('#jQuery'), $linkNew = $('#jQuery_new'), link = document.getElementById('pureJs'), linkNew = document.querySelector('#pureJs_new'), linkPopup = document.getElementById('popup'); $link.click(function() { $(log).text($(this).text()); }); $(document).on('click', '#jQuery_new, #internal, #email, #href', function() { $(log).text($(this).text()); }); link.onclick = function() { log.innerHTML = this.innerHTML; }; document.onclick = function(e) { var el = e.target; if (el.id == 'pureJsBound') { log.innerHTML = document.getElementById('pureJsBound').innerHTML; } }; linkNew.addEventListener('click', function() { log.textContent = this.textContent; }, false); document.addEventListener('click', function(e) { var el = e.target; // for all A tags do the following if (el.id == 'pureJs_newBound') { log.innerHTML = document.querySelector('#pureJs_newBound').textContent; } }, true); function internalPopup(e) { log.innerText = e.innerText; window.open('http://fiddle.jshell.net/baivong/m0njwau7/show/', '_blank'); } function ignorePopup(e) { var ignore = window.open('', 'ignore', 'width=300,height=100'); ignore.document.body.innerHTML = '<a href="https://github.com/baivong/Userscript" onclick="window.close();" target="_blank">https://github.com/baivong/Userscript</a>'; log.innerText = e.innerText; } function externalPopup(e) { log.innerText = e.innerText; window.open('https://openuserjs.org/users/baivong', '_blank'); }
<h1 id="log">Log</h1> <p> <a id="normal" class="skip" href="http://jsfiddle.net/baivong/m0njwau7/embedded/result,js,html/" target="_blank">Normal</a> (No click event) </p> <p> <a id="internal" class="skip" href="//fiddle.jshell.net/baivong/m0njwau7/show/" target="_blank">Internal</a> (Skip) </p> <p> <a id="email" class="skip" href="mailto:[email protected]?Subject=Userscript%20popup%20blocker">Email link</a> (Skip) </p> <p> <a id="href" class="skip" href="javascript:alert('Userscript popup blocker');">Javascript link</a> (Skip) </p> <p> <a id="jQuery" href="http://baivong.github.io/" target="_blank">jQuery Click event</a> </p> <p> <a id="jQuery_new" href="https://greasyfork.org/vi/users/2590-baivong" target="_blank">jQuery Click event bound</a> </p> <p> <a id="pureJs" href="http://devs.forumvi.com/" target="_blank">Handle Click event</a> </p> <p> <a id="pureJsBound" href="https://openuserjs.org/scripts/baivong/popup_blocker" target="_blank">Handle Click event bound</a> </p> <p> <a id="pureJs_new" href="http://fb.me/Zzbaivong" target="_blank">Listen Click event</a> </p> <p> <a id="pureJs_newBound" href="https://greasyfork.org/scripts/21101-popup-blocker" target="_blank">Listen Click event bound</a> </p> <hr> <p> <button id="popup" class="skip" onclick="ignorePopup(this);">Open Popup</button> (Skip) </p> <p> <button id="internalPopup" class="skip" onclick="internalPopup(this);">Open internal URL</button> (Skip) </p> <p> <button id="externalPopup" onclick="externalPopup(this);">Open external URL</button> </p>
body { padding: 20px 20px 300px; } a { color: #2196F3; text-decoration: none; } .skip { color: #4CAF50; }