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 .
<!--[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>:
/*
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;
}
}
//-->
<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