jesteś w: Główna > javascript > funkcje > javascript: nw()
Ostatnia aktualizacja tej strony: 2022-03-28, 21:03:27
funkcje javascript: NW() - otwórz link w nowym oknie
HXTML strict nie obsługuje atrybutu target
dla elementu a
. Jeśli już zajdzie konieczność otworzenia strony w nowym oknie (chociaż należy tego unikać) można zastosować tą funkcję javascript:
<script type="text/javascript">
//<![CDATA[
function NW(o){
window.open(o.href);
return false; }
//]]>
</script>
wywołanie:
<a href="link.html" onclick="return NW(this);">link</a>
A może js odwali za nas robotę?
Poniższy skrypt sam doda odpowiedni event do wszystkich elementów <a /> z odpowiednią klasą (w przykładzie "outer").
outerLinker = function(cName){
this._opener = function(t){
window.open(t.href);return false;
}
this._constr = function(){
if(document.getElementsByTagName){
var a = document.getElementsByTagName('a');
re = new RegExp('^'+cName+'$|.* '+cName+'$|^'+cName+' .*|.* '+cName+' .*');
for(var i=0; i<a.length; i++){
if(re.test(a[i].className)){a[i].onclick = function(){return _opener(this);}}
}
}
}
this._constr();
}
//wywołanie
window.onload = function(){outerLinker('outer');}
Użycie klasy pozwala dodatkowo na oddzielne ostylowanie linków zewnętrznych, dzięki czemu użytkownicy będą wiedzieli, że link otwiera się w nowym oknie
auto Popup
testy
<script type="text/javascript">
AutoPopuper = function(cName, params){
params = (typeof(params) == undefined ? '' : params);
this._opener = function(t){
var autoPopup = window.open(t.href, 'autoPopup', params);return false;
}
this._constr = function(){
if(document.getElementsByTagName){
var a = document.getElementsByTagName('a');
re = new RegExp('^'+cName+'$|.* '+cName+'$|^'+cName+' .*|.* '+cName+' .*');
for(var i=0; i<a.length; i++){
if(re.test(a[i].className)){a[i].onclick = function(){return _opener(this);}}
}
}
}
this._constr();
}
window.onload = function(){AutoPopuper('myClass', 'width=320,height=310');}
</script>