/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * JsPopUp 1.0 * Opening Browser-Windows the unobtrusive way * Dirk Ginader * www.ginader.de * dirk@ginader.de * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * degrades nicely, unbobtrusive * succesfully testet in: * Windows * * Firefox 2.0 * * Firefox 1.5 * * IE 7 * * IE 6 * * IE 5.5 * * IE 5.01 * * Opera 8.02 * MAC OS X * * Firefox 1.5 * * Safari 2.03 * * IE 5.02 MAC * Linux (Ubuntu) * * Firefox 1.07 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * USAGE in the Head of an HTML-Page: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * USAGE in the Body of an HTML-Page:

Ich bin nur ein Link mit der Klasse "popup"

Ich bin nur ein Link mit der Klasse"popup" und der Klasse "pdf"

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * License: * This file is entirely BSD licensed. * More information: * http://blog.ginader.de/dev/popup.html * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CHANGELOG: 1.0 Initial Version * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ PopUp = function(autoapply){ this.types = []; this.defaults = { width:1000, height:600, top:0, left:0, location:false, resizable:false, scrollbars:false, status:false, toolbar:false, menubar:false, center:true, title:"This link opens in a new window" } this.addType({ name:"standard", location:true, resizable:true, scrollbars:true, status:true, toolbar:true, menubar:true }); if(autoapply) this.apply(); } o = PopUp.prototype; o.apply = function(){ var links = document.getElementsByTagName("a"); if(!links) return; for(var i=0;i -1){ this.attachBehavior(l,this.getType(l)); } } } o.addType = function(type){ for(var prop in this.defaults){ if(type[prop] == undefined) type[prop] = this.defaults[prop]; } this.types[type.name] = type; } o.getType = function(l){ for(var type in this.types){ if(l.className.indexOf(type) > -1) return type; } return "standard"; } o.attachBehavior = function(l,type){ var t = this.types[type]; l.title = t.title; l.popupProperties = { type: type, ref: this }; l.onclick = function(){ this.popupProperties.ref.open(this.href,this.popupProperties.type); return false; } } o.booleanToWord = function(bool){ if(bool) return "yes"; return "no"; } o.getTopLeftCentered = function(typeObj){ var t = typeObj; var r = {left:t.left, top:t.top}; var sh = screen.availHeight-20; var sw = screen.availWidth-10; if(!sh || !sw) return r; r.left = (sw/2)-(t.width/2); r.top = (sh/2)-(t.height/2); return r; } o.getParamsOfType = function(typeObj){ var t = typeObj; var c = this.booleanToWord; if(t.center){ var tc = this.getTopLeftCentered(typeObj); t.left = tc.left; t.top = tc.top; } var p = "width="+t.width; p+=",height="+t.height; p+=",left="+t.left; p+=",top="+t.top; p+=",location="+c(t.location); p+=",resizable="+c(t.resizable); p+=",scrollbars="+c(t.scrollbars); p+=",status="+c(t.status); p+=",toolbar="+c(t.toolbar); p+=",menubar="+c(t.menubar); return p; } o.open = function(url,type){ if(!type) type = "standard"; var t = this.types[type]; var p = this.getParamsOfType(t); // msslovi0 2007-01-11 // add a getparameter to the url, so we can decide with a serverside scripting language wether to load navigation or not (parameter missing: no javascript, navigation; parameter present: javascript, no navigation, but maybe window.close() link instead) if(url.search(/\?/)==-1) { if(url.search(/#/)==-1) url = url + "?jsPopUp=true"; else url = url.replace(/#/, "?jsPopUp=true#"); } else { if(url.search(/#/)==-1) url = url + "&jsPopUp=true"; else url = url.replace(/#/, "&jsPopUp=true#"); } var w = window.open(url,t.name,p); if(w) w.focus(); return false; }