/** * File: external.js * Modified by: Brian Borowski * Original from: http://www.brucelawson.co.uk/2005/opening-links-in-new-windows-in-xhtml-strict-2/ * Date created: October 12, 2008 * Date last modified: October 12, 2008 */ function externalLinks() { var objCurrent, objReplacement; if (document.getElementsByTagName) { var objAnchors = document.getElementsByTagName('a'); for (var iCounter = 0; iCounter < objAnchors.length; iCounter++) { if (objAnchors[iCounter].getAttribute('href') && objAnchors[iCounter].getAttribute('rel') == 'external') { objAnchors[iCounter].onclick = function(event) { return launchWindow(this, event); } objAnchors[iCounter].onkeypress = function(event) { return launchWindow(this, event); } /* Pass on this for now. Though it meets standards, it just does not look right... if (document.replaceChild) { objCurrent = objAnchors[iCounter].firstChild; if (objCurrent.nodeType == 3) { // Text node objReplacement = document.createTextNode(objCurrent.data + ' (opens in a new window)'); objAnchors[iCounter].replaceChild(objReplacement, objCurrent); } else if (objCurrent.alt) { // Current element is an image objReplacement = objCurrent; objReplacement.alt = objCurrent.alt + ' (opens in a new window)'; try { objAnchors[iCounter].replaceChild(objReplacement, objCurrent); } catch(e) { } } } */ } } } } function launchWindow(objAnchor, objEvent) { var iKeyCode; if (objEvent && objEvent.type == 'keypress') { if (objEvent.keyCode) { iKeyCode = objEvent.keyCode; } else if (objEvent.which) { iKeyCode = objEvent.which; } if (iKeyCode != 13 && iKeyCode != 32) { return true; } } return !window.open(objAnchor); }