Abrir enlaces externos en pagina nueva de forma optativa

Los visitantes de nuestro blog tendrán la posibilidad de escoger la forma de abrir los enlaces externos de nuestro blog, para ello usaremos un script y mediante una casilla en nuestra sidebar daremos la posibilidad de elección.

[1] Tendremos que copiar el script en el blog de notas por ejemplo y modificar los datos que he puesto en negrita por los vuestros .

<!--
/*
Link Target Preferences v.1.1
http://www.noscope.com/journal/2004/10/link-target-preferences
*/

// BEGIN Configuration
// estas URLs seran consideradas internas y se ignoraran
var url_1 = "http://MIBLOG.blogspot.com";
var url_2 = "http://www.google.com";

// Preferencia por defecto:
// El valor "true" abre los enlaces en nueva ventana por defecto, "false" los abre en la misma
var open_blank_default = true;

// Titulo Blog - se usa solo para no crear interfencian con las cookies
// No espacios, ni caracteres especiales

var site_title = "elescaparatederosa";
// FIN configuracion

// Cookie Functions
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
// Checkbox Loader
function loadLinkPrefs () {
if (readCookie(site_title+"_linkprefs_cookie")) {
initVal = readCookie(site_title+"_linkprefs_cookie"); // Load cookied preference
} else {
createCookie(site_title+"_linkprefs_cookie", true, 20000)
initVal = open_blank_default; // If no cookie is set
}
openBlank = initVal;
setCheckbox(eval(initVal))
}
// Set Checkbox State
function setCheckbox(state) {
openBlank = state;
document.getElementById('linkprefs').checked = state;
setTargets();
createCookie(site_title+"_linkprefs_cookie", state, 20000)
}
// Configure Link Targets
function setTargets() {
var link, l = 0;
if (openBlank == true) {
while (link = document.links[l++]) {
// Open in _blank, except all links starting with...
if (link.href.indexOf(url_1) == -1 && link.href.indexOf(url_2) == -1 && link.href.indexOf('javascript') == -1) link.target = '_blank';
}
} else {
while (link = document.links[l++]) {
// Open in _top, except all links starting with...
if (link.href.indexOf(url_1) == -1 && link.href.indexOf(url_2) == -1 && link.href.indexOf('javascript') == -1) link.target = '_top';
}
}
}
// Event Listener, by Scott Andrew
function addEvent(obj, evType, fn) {
if (obj.addEventListener) {
obj.addEventListener(evType, fn, true);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent('on'+evType, fn);
return r;
} else {
return false;
}
}
//-->
[2] Una vez modificado el script lo guardamos como linkprefs.js y lo subimos a un alojamiento colocando la dirección (url) obtenida en dicho alojamiento en este código y lo colocamos antes de </head>:

<script src='URL_DEL_SCRIPT'></script>

[3] Para terminar añadimos estas líneas de código donde mostraremos la casilla optativa para abrir los enlaces:
<div class="linkprefs">
<p style="display: block;"><input id="linkprefs" value="linkprefs" name="linkprefs" onclick="setCheckbox(document.getElementById('linkprefs').checked);" type="checkbox"/>
<label for="linkprefs" title="opciones de navegacion">Abrir enlaces externos en nueva ventana</label></p><span></span>
<script type="text/javascript">addEvent(window, 'load',loadLinkPrefs);</script>
</div>

Visto en: La Blogueria

0 comentarios:

Publicar un comentario