Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

IE de çalışan bir js yi Netscape te çalıştırmak.

Konu, 'Javascript' kısmında LoS.ToF tarafından paylaşıldı.

  1. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Selamlar.
    Aşağıdaki JavaScript'i rahatcana IE de çalıştırıyorum fakat benim bu script i hem ie de hemde NS de rahatcana çalıştırmam lazım.
    Bunun için bir library duymuştum. Neyse bilen biri varsay şey ettiriversin tşk.
    Kod:
    function set_bgcolor(w, p) {
    	if (p==0) { w.style.background='#F0F0F0'; } // Standart arka plan rengi
    	else if (p==1) { w.style.background='#F7F7F7'; w.style.cursor='hand'; } // renk 1 
    	else if (p==3) { w.style.background='#FFFFFF'; w.style.cursor='hand'; } // renk 2
    	else if (p==2) { w.style.background=''; w.style.cursor='hand'; } // renk 3
    }
    
    function gk(neyi, stat) {
    	if (stat==1) {
    		eval("document.all."+neyi+".style.display=''");
    	}else{
    		eval("document.all."+neyi+".style.display='none'");
    	}
    }
    
     
  2. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Çooookkkk aradım buna benzer bir şeyin netscapede nasıl çalıştırıldığını bulmayı ama maalesef bende bulamadım yerine benzer başka javascriptler denedim sanada öneririm :)
     
  3. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    "document.all.nesne.style.background"...
    Oldu mu?
    "nesne.style.backgroundColor"...
    Oldu!!!

    Örneğin :
    <script>
    function degistirRengi(nesne,renk){
    eval(nesne+".style.backgroundColor=renk")
    }
    </script>

    Diyelim ki bir iki hücrenin artalan rengini değiştireceğiz :

    <td id="ooleeboleediil" onMouseOver="degistirRengi('ooleeboolediil','#FF0000')">Değişti mu abu?</td>
    <td id="sooleebooleediil" onMouseOver="degistirRengi('sooleebooleediil','#0000FF')">Bu da mu?</td>

    Oldu muu???
     
  4. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Fixman yazdığından hiç bir şey anlamadım ne ie de doğru dürüst çalışıyor ne de netscapede çalışıyor. Çalışan bir örnek verirmisin?
     
  5. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    Varsayalım ki sayfadaki tablo hücrelerinin artalan rengini değiştirmek için bir fonksiyona ihtiyacın var... Bu fonksiyonun hem IE'de hem de Netscape'de çalışabilmesi için belli yazım kurallarına uymak zorundasın...

    Örneğin IE "document.all" DOM ifadesini tanırken Netscape görmezden gelecektir...

    Hatta sayfanın görüntülendiği tarayıcının IE olup olmadığını anlamak için bu DOM ifadesi kullanılabilir :

    <script>
    metin=document.all?"Evet, IE kullanıyorsunuz...":"Hayır, IE kullanmıyorsunuz!"
    document.write(metin)
    </script>

    Bu bilgiler ışığında fonksiyonumuzu yazalım :

    function renkDegistir(nesne,renk){
    eval(nesne+".style.backgroundColor=renk")
    }

    Burada fonksiyona gelen "nesne" argümanı, fonksiyonu çağırıken kullanacağın tablo hücresinin ID'sidir... "renk" ise ID'si belirtilmiş nesnenin alacağı stil-artalan rengi değeridir...

    Bu fonksiyonu tablo hücresine gömeceğin OnMouseOver olayıyla çağırabilirsin :

    <td id="hucre1" onMouseOver="renkDegistir('hucre1','FF0000')">

    OnMouseOut olayıya, yani fare imleci hücre üzerinde değilken yürütülecek olayla ilgili fonksiyon çağrılarını da aynı etiket içinde belirtebilirsin...

    Başarılar... Sevgiler...
     
    Son düzenleme yönetici tarafından yapıldı: 17 Mart 2003
  6. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Sen yazdığın kodu denedin mi? Çalıştığından eminmisin? Ben denedim ve hiçbir şekilde Netscape'de çalışmadı. Çalıştırabildinse çalışan bir örneğinin linkini verebilirmisin?

    Netscape ile ilgili yaptığım bütün araştırmalarda table rengi sadece ilayer ile değiştirilebiliyor bu şekildeki bir javascripti hiçbir şekilde tanımıyor netscape.
     
  7. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Bu sorunun cevabını vermiştin ama server değişikliği nedeni ile silindi fixman yeniden yazayım sık aranan bir script çünki
    Kod:
    <script>
    function renkDegistir(nesne,renk){
    eval("document.getElementById('"+nesne+"').style.backgroundColor=renk")
    }
    </script>
    
    Table içinde;

    Kod:
    <table>
    <tr>
    <td id="hucre1" onMouseOver="renkDegistir('hucre1','FF0000')"> aaa</td>
    </tr>
    </table>
    
    ;)
     
  8. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    Anlayışın için teşekkürler...
    :super:
     
  9. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Peki sanırım

    style="CURSOR: hand;CURSOR: pointer" ile her ikisindede el imleci gelir ama

    onclick="if (ie) window.location = this.all.tags('a')[0].href"

    için netscapede ne yapmak lazım?
     
  10. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    onclick="window.location =('aaa.htm')" şeklinde yazınca oluyor ama o zaman iki kere aynı linki vermiş oluyoruz ayrıca <td> içine dünya kadar yazı ekliyoruz az link varsa sorun değil ama 15-20 linki geçerse ne yapacağız bunu <script> olarak external dosyaya toparlayamazmıyız?
     
  11. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    Şahin, malum, internete sadece pzt-salı girebildiğim için mesajını ancak okuyabildim...

    Bu ve buna benzer soruların için sana önerebileceğim adreslerden biri portal niteliği taşıyan ve aradığın çoğu şeyi bulabileceğin Netscape'in sitesi :

    http://devedge.netscape.com/

    Açıkçası sorunu iyice anlamaya çalıştım ama tam başarılı olamadım... <td> etiketi içine birden fazla linki eklemek de neyin nesi? Ayrıca onClick="bilmemne" yazınca neden aynı linki iki kere vermiş oluyorsun? Ve bir önceki mesajında yazdığın koda bakar bakmaz sadece internet explorer da çalışacağı anlaşılıyor zaten!

    Bu arada... Doğrudur, sayfanda kullanacağın linkleri küçük bir veritabanı haline getirip ayrı bir js dosyasında depolayabilirsin.

    Sorunu biraz daha açarsan kesin bir yanıt verebiliriz sanırım... Ama hemen almak istiyorsan yanıtını çarşambadan öncer yazmalısın bu soruyu :)
     
  12. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Şimdi şöyle anlatayım

    <td id="hucre1" onMouseOver="renkDegistir('hucre1','FF0000')" onMouseOut="renkDegistir('hucre1','FFFFFF')" onclick="window.location =('aaa.htm') > <a href=aaa.html>aaa</a></td>

    Yukardaki örnekte hem onclick hemde a için href vermek zorunda kaldık oysa onclick bu degeri this.all.tags('a')[0].href" gibi bir şeyle a dan alsın istiyorum netscape içinde.

    ayrı bir js içinde toplamaya çalıştım ama buradada hucre1, hucre2 hucre3 diye gitmesi beni engelledi hucre yerine this desek olmaz mı?
     
  13. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    Ama...
    Tamam da...
    onClick ifadesini kullandıktan sonra href tagını kullanmana gerek yok ki?

    <td id="hucre1" onMouseOver="renkDegistir('hucre1','FF0000')" onMouseOut="renkDegistir('hucre1','FFFFFF')" onclick="window.location =('aaa.htm')><a>aaa</a></td>

    Şöyle bir CSS kullanarak <a> taglarını link gibi gösterebilirsin, biliyorsundur :

    <style type="text/css">
    <!--
    a{color:#0000FF;text-decoration:underline}
    -->
    </script>

    Bildiğim kadarıyla "window.location" olayı Netscape'de destekleniyor?

    Veri dosyasından bağlantı almak konusuna gelince;

    Varsayalım ki şööle bir js dosyan var :

    linkler.js

    function openLink(link){

    var links=new Array()
    links[0]="http://forum.ceviz.net"
    links[1]="http://forum.veciz.net"
    .
    .
    .
    links[n]="http://ceviz.net"

    location.href=links[link]

    }

    Bu dosyayı html belgesine gömdükten sonra gerekli onClick olayını şu şekilde değiştirebilirsin :

    <td id="hucre1" onMouseOver="renkDegistir('hucre1','FF0000')" onMouseOut="renkDegistir('hucre1','FFFFFF')" onclick="openLink(2)"><a>aaa</a></td>

    Umarım senin soruna uygun bir yanıt olmuştur...

    Sevgiler.
     
  14. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Sorulardan biride şuydu fixman renkDegistir('hucre1','FF0000')" buradaki hucre1 yerine this diyemezmiyiz ya da başka bir şey yoksa her link için hucre1 hucre2 vs demek gerekiyor.
     
  15. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    Bi de şunu dene abicim :

    <script>
    function renkDegistir(nesne,renk){
    nesne.style.backgroundColor=renk
    }
    </script>

    <td onMouseOver="renkDegistir(this,'FF0000')">A-AA?</td>

    Yalnız Gecko'da test etmedim... :)
     
  16. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    window.location olmaması çok kötü hiçmi yolu yok acaba aslında birazda mantıksız. onClick ile tabloya link verince neden tıklayamayasın ki? değil mi?
     
  17. fixman

    fixman Daimi Üye

    Kayıt:
    10 Mart 2003
    Mesajlar:
    867
    Beğenilen Mesajlar:
    0
    Şehir:
    Yemez.
    Şahin, "location.href" zaten bir "href" yazım biçimi değil mi? Yani neden kafayı "window.location" taktığını annayamıyorum...

    Bir kodu hem ie'de hem nn'de çalıştırmak için belli yazım kurallarına uyacaksın işte, ne yapabilirsin ki?

    "Kodlama standartı olsun", "her script için farklı farklı kodlar yazmayalım" deyince de tekelci zihniyete sahip olmakla suçlanıyorsun....

    Senin yazdıklarına dönecek olursak;

    Sen de tıklanabilir şekilde yeniden düzenle onu :

    "<a>Link</a>" yerine

    "<a href="javascript:">Link</a>" yazabilirsin örneğin, değil mi?

    Basit bir CLICK simulasyonu :) Bu şekilde tablo hücresine tıklandığı zaman linke de tıklanmış olur...

    Sevgiler dost, kolay gelsin!
     
  18. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Ben gene bu konuya döndüm :p

    Bu üstteki kod en işe yarar olan içlerinde ama takıldığım tek yer "<a href="javascript:">Link</a>" ile click smilasyonu yapmak ne denedimse olmadı fix :)
     
  19. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Daha doğrusu bu kodlar yeni sitede kullanacağım kodlar ve hemen hemen aynı sonucu veriyorlar ama 2 eksik var

    1- Netscape window status ve window locationu tanımıyor
    2- Her ikiside td üzerine geldigimde linkler renk değiştirmiyor.

    Buyur kodalar burda;

     
  20. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Üstteki senin yazdığın koddada durum aynı. İkisindede aynı şeyler sorun oluyor. Ve denediğim yazdığım diğer 15-20 koddada olursa sanırım senin bahsettiğin benim anlamadığım click simulasyonu ile olur olmazsa bu hali ile olacak.

    Sevgiler...