Autor Zpráva
meca
Profil
function fileLinks() {
var fileLink;
if (document.getElementsByTagName('a')) {
for (var i = 0; (fileLink = document.getElementsByTagName('a')[ i ]); i++) {
if (fileLink.href.indexOf('http://') != -1) {
fileLink.className = 'ven';
}
}
}
}

... snažil jsem se upravit tenhle skript, aby každýmu odkazu ven dal class ven, jenže tenhle skript dá ten class ven všem odkazům...

A když jsem skusil náký ty regulérní výrazy či co... tak to zase neoznačilo žádnej...

if (fileLink.href.indexOf('^http:\/\/[[:alnum:]]$') != -1) {

... nevíte někdo ak na to? :-) dik ;)
centi
Profil
mne ta prva funkcia funguje tak ako ma, prida class="ven" len linkam zacinajucim na http://
Fred
Profil
Testováno, nějak takhle

<style>
.ven{color:green;}
</style>

<script type="text/javascript">
<!--
var d=document;
function fileLinks(){
var body=d.getElementById('nejakeid');
var a=body.getElementsByTagName('a');
for(var i=0;i<a.length;i++){
if (a[i].getAttribute("href").indexOf("http://")!=-1){
a[i].className='ven';
}}}
function addEvent(obj,evType,fn){//thanx to http://www.scottandrew.com/weblog/articles/cbs-events
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;
}}
addEvent(window,'load',fileLinks);
//-->
</script>

</head>
<body id="nejakeid">

<a href="index.htm">místní</a>
<a href="http://www.index.cz">cizí</a>
meca
Profil
centi > No mě to na localhostu fungovalo, ale pak nááko ne-e...

Fred > joo.. dix moc ... ale je tu jeden háček... tady to funguje, ale pak, když to úplně stejný dám na jinou stránku, tak to nefunguje... :-/
centi
Profil
meca
Podla mna bude zadrhel asi tu:
var body=d.getElementById('nejakeid');

co tym zapisom chces docielit?
meca
Profil
Ajoooo.. já sem vůůůl ;) ... dix moc ;) ...

No jako jak co chci docílit? :-) ... to co sem řikal na začátku ;)
Fred
Profil
Máš tam <div id="all" id="body"> to bude potíž, prohlížeč i js berou id="all" tak si to přepiš v tom scriptu na all
meca
Profil
Fred > To byl překlep ;) .. už by to mělo jít... jenom zase neim jak to mam spustit. Když to mam v externim tom? ... :-/
Fred
Profil
Jenom to dej do externího scriptu, bude to fungovat, tedy pokud tam bude to idecko ;-)
meca
Profil
:-D ... kua... já sem ale *** ;-) ... sem tam nahrál nákou starou verzi ;) ... tak teda diks moc ;)
Fred
Profil
Jak jsem se dozvěděl, tak to nefungovalo v Opeře, protože si dopisuje http:// atd do adresy sama, takže adresa je v opeře vždycky indexof('http://') a proto je tu opět díky opeře pár řádků navíc. Třetí srážka s operou za den to je na mě trochu moc.

var opera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false
var d=document;
function fileLinks(){
var body=d.getElementById('nejakeid');
var a=body.getElementsByTagName('a');
for(var i=0;i<a.length;i++){
if (a[i].getAttribute("href").indexOf("http://")!=-1&&!opera){
a[i].className='ven';
}
else if(opera&&a[i].getAttribute("href").indexOf("http://xy.wz.cz")!=0){ //tady si dopiš svojí doménu
a[i].className='ven';
}
}}
function addEvent(obj,evType,fn){//thanx to http://www.scottandrew.com/weblog/articles/cbs-events
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;
}}
addEvent(window,'load',fileLinks);
Toto téma je uzamčeno. Odpověď nelze zaslat.

0