Makes hashtag links open in a new window or tab
当前为
// ==UserScript==
// @name Pop Facebook Hash Tags
// @namespace http://www.emsquared-inc.com/
// @version 1.5.5 beta
// @description Makes hashtag links open in a new window or tab
// @author Eric Mintz
// @oujs:author emsquared-inc
// @license GNU GPL v3.0; https://github.com/emsquared-inc/PopFacebookHashTags/blob/gh-pages/LICENSE
// @homepageURL http://www.emsquared-inc.com
// @supportURL https://github.com/emsquared-inc/PopFacebookHashTags
// @match https://www.facebook.com/*
// @match https://www.facebook.com
// @grant none
// ==/UserScript==
(function() {
var addListener = function(element,eventName,listener){
if(element.addEventListener){
element.addEventListener(eventName, listener);
}else{
element.attachEvent('on'+eventName, listener);
}
};
var removeListener = function(element, eventName, listener){
if(element.removeEventListener){
element.removeEventListener(eventName, listener);
}else{
element.detachEvent('on'+eventName, listener);
}
};
// Manage handlers
addEventListeners = function() {
addListener(document,'load',fixFacebookLinks);
addListener(document,'DOMNodeInserted',fixFacebookLinks);
};
removeEventListeners = function() {
removeListener(document,'load',fixFacebookLinks);
removeListener(document,'DOMNodeInserted',fixFacebookLinks);
};
// Modify hashtag links
var fixFacebookLinks = function() {
// remove handlers to prevent recursion
removeEventListeners();
// find hashtag links
var allLinks = document.getElementsByTagName('a');
for (var i = 0; i < allLinks.length; i++) {
if (allLinks[i].href && allLinks[i].href.contains('/hashtag/')) {
// make the linke pop open a new brower window/tab
allLinks[i].setAttribute('target','_blank');
}
}
// restore the handlers
setTimeout(function() {addEventListeners();},3000);
};
// Add listeners
addEventListeners();
})();