‘javascript’ etiketli yazýlar

ÇeÅŸitli e-posta sitelerinde, hiç kullandınız mı bilmiyorum, kimi klasik klavye kısayolları kullanarak sık yapılan iÅŸleri kolaylaÅŸtırabilirsiniz. “n” ile sonraki mesaja, “p” ile önceki mesaja gitmek, “c” ile yeni e-posta yaratmak, vs… http://www.openjs.com/scripts/events/keyboard_shortcuts/ adresinde bulacağınız javascript sınıfı ile bu özellikleri kolaylıkla kendi sitenize ekleyebilirsiniz.

Basitçe nasıl kullanıldığını anlatayım. Önce javascript dosyasını şuradan indiriyorsunuz. Javascript dosyasını sayfanıza ekledikten sonra kullanabileceğiniz iki fonksiyon var: shotcut.add() ve shortcut.remove().

shortcut.add(tuslar, fonksyion, secenekler);
tuslar: string formatında tuÅŸlar. “a”, “b”, “8″, “#” gibi tek karakterlik kısayol tanımlayabileceÄŸiniz gibi “ctrl+s”, “alt+f”, “ctrl+shift+x” gibi kombinasyolar da kullanabilirsiniz.
fonksiyon: tanımlanan tuşlara basıldığında çağırılacak fonksyion.
secenekler: Javascript nesnesi. Varolan seçenekler:
type: “event” tipi. fonksiyonun hangi anda çağırılacağını belirler. ÅŸunlardan bir tanesi olabilir: “keydown”, “keyup”, “keypress”. Geçerli olan “keydown” yani tuÅŸa basıldığı an.
disable_in_input: “true” ya da “false”. İmleç input, textarea gibi alanlardayken kısayolların çalışmasını engeller. Geçerli deÄŸer: false
target: DOM nesnesi. Tuşların aktif olduğu DOM nesnesi. Geçerli değer: document (her yer)
propagate: “true” ya da “false”. Taracının kendi içinde tanımlı kısayolu aktif kalsın mı?
keycode: tuÅŸun kodu. mesela “a” için “65″.

shortcut.add()

Yeni kısayol ekleme.

Kullanımı:

shortcut.add(tuslar, fonksiyon, secenekler);

Parametreler:

  • tuslar: string formatında tuÅŸlar. “a”, “b”, “8″, “#” gibi tek karakterlik kısayol tanımlayabileceÄŸiniz gibi “ctrl+s”, “alt+f”, “ctrl+shift+x” gibi kombinasyolar da kullanabilirsiniz.
  • fonksiyon: tanımlanan tuÅŸlara basıldığında çağırılacak fonksyion.
  • secenekler: Javascript nesnesi. Varolan seçenekler:
    • type: “event” tipi. fonksyionun hangi anda çağırılacağını belirler. ÅŸunlardan bir tanesi olabilir: “keydown”, “keyup”, “keypress”. Geçerli olan “keydown” yani tuÅŸa basıldığı an.
    • disable_in_input: “true” ya da “false”. İmleç input, textarea gibi alanlardayken kısayolların çalışmasını engeller. Geçerli deÄŸer: false
    • target: DOM nesnesi. TuÅŸların aktif olduÄŸu DOM nesnesi. Geçerli deÄŸer: document (her yer)
    • propagate: “true” ya da “false”. Taracının kendi içinde tanımlı kısayolu aktif kalsın mı?
    • keycode: tuÅŸun kodu. mesela “a” için “65″.

Örnek:

shortcut.add("Ctrl+B",
		function(){alert("ctrl+b tuşlarına bastınız");}
	);
 
shortcut.add("Ctrl+B",
		function(){alert("propogate:true olduğu için bu mesajdan sonra tarayınızın kendi işlevi çalışacak");},
		{propogate:true}
	);

shortcut.remove()

Kısayol kaldırma.

Kullanımı:

shortcut.remove(tuslar);

Parametreler:

  • tuslar: kaldırılacak kısayol tuÅŸları.

Örnek:

//kisayol ekle
shortcut.add("Ctrl+B", function(){alert("Yeni kısayol eklendi");} );
//kisayolu kaldir
shortcut.remove("Ctrl+B");

Kullanılabilecek özel tuşlar:

Tab
Space
Return
Enter
Backspace
Scroll_lock
Caps_lock
Num_lock
Pause
Insert
Home
Delete
End
Page_up
Page_down
Left
Up
Right
Down
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12

MiniAjax Kütüphanesi

18 Aralık 2009

MiniAjax 1.4kb’lık boyutuyla gerçekten mini bir javascript kütüphanesi. MiniAjax, AJAX için gerekli tüm temel fonksiyonları barındırır. Böylece basit bir AJAX yüklemesi için Prototype gibi iri kıyım kütüphanelerle uÄŸraÅŸmazsınız. Üstelik aÅŸağıda da göreceÄŸiniz gibi kullanımı da çok basit. Projenin Google Code sayfasına buradan ulaÅŸabilirsiniz: http://code.google.com/p/miniajax/. AÅŸağıda türkçe çevirisini yaptığım dökümantasyonu da yine bu sayfada bulacaksınız. Dzone’daki bu sayfada da kodla ilgili ingilizce yazışmalara ve farklı kiÅŸilerin yazdığı ek fonksiyonlar bulunmakta.

Kütüphanenin Kaynak Kodu:

 function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
 function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};
 
 ajax={};
 ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
 ajax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
 ajax.send=function(u,f,m,a){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
 ajax.get=function(url,func){ajax.send(url,func,'GET')};
 ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
 ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
 ajax.update=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.get(url,f)};
 ajax.submit=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};

Mini Dökümantasyon:

ajax.x
İletişim için kullanılan XMLHttpRequest Nesnesi (veya Microsoft karşılığı)

ajax.serialize(f)
f:Dökümü alınmak istenen (serialize) form nesnesi.
Bu fonksiyon belirtilen HTML <FORM> içinde bulunan tüm alanların isim=fani&soyad=madida&yas=32 şekline çevirilip karşı sayfalara gönderilebilir hale getirilmesini sağlar. ajax.submit fonksiyonu tarafından formu göndermek için kullanılır.

ajax.get(url, func)
url: verilerin gönderileceği adres. Adreste soru işareti (?) ve sonrası parametreler kullanabilir. (ör: save.php veya save.php?s=1)
func: verilerin gönderildiği sayfadan cevap geldikten sonra çağırılacak fonksiyon (callback).
GET metodu ile belirtilen url’ye parametreleri gönderir ve sonucu aldıktan sonra ‘func’ ile belirtilen fonksiyonu çağırır. Asenkron çalışır.

ajax.gets(url)
url: verilerin gönderileceği adres. Adreste soru işareti (?) ve sonrası parametreler kullanabilir. (ör: save.php veya save.php?s=1)
GET metodu ile belirtilen url’ye parametreleri gönderir, cevabı bekler ve sonucu geri döndürür. Asenkron deÄŸildir. Dolayısıyla karşıdaki sayfadan cevap gelene kadar iÅŸlemleri bekletir. Yani gerekmedikçe kullanmayın.

ajax.post(url, func, args)
url: verilerin gönderileceği adres.
func: verilerin gönderildiği sayfadan cevap geldikten sonra çağırılacak fonksiyon (callback).
args: POST metodu ile gönderilecek parametreler.  param1=deger1&param2=deger2 formatında kullanılmalıdır.
POST metodu ile belirtilen url’ye parametreleri gönderir ve sonucu aldıktan sonra ‘func’ ile belirtilen fonksiyonu çağırır. Asenkron çalışır.

ajax.update(url, elm)
url: verilerin gönderileceği adres. Adreste soru işareti (?) ve sonrası parametreler kullanabilir. (ör: save.php veya save.php?s=1)
elm: güncellenecek html elemanı (id ya da nesnenin kendisi verilmelidir).
GET metodu ile belirtilen adrese istekte bulunur. karşıdan gelen cevabı olduğu gibi belirtilen elemanın içerisine yazar.

ajax.submit(url, elm, frm)
url: verilerin gönderileceği adres.
elm: güncellenecek HTML elemanı (id ya da nesnenin kendisi verilmelidir).
frm: gönderilecek form nesnesi
Çoğunlukla <FORM> etiketinin onsubmit olayında çalıştırılacak fonksiyon. Formu sunucuya gönderir ve gelen cevabı belirtilen elemana yazar.

Kategoriler: Programlama
Tags: ,
devam et >

Aşağıda sayfanızdaki flash dosyasının boyutlarını değiştiren javascript dosyası bulunmakta.  IE5.5, IE6, IE7, IE8, Firefox 3, Opera 10, Safari 4, Chrome 3 programlarında test edildi.

Kullanım

Düzgün çalışması için flash’ı sayfanıza yerleÅŸtirirken kullanıdığınız html <object> etiketine id vermeniz gerekiyor. Daha sonra fonksiyonları çağırırken kullanacağımız ‘id’ bu olacak. Örnek:

<object  id=”flashid” height=”500″ width=”650″
classid=”CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000″
codebase=”http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0″>

</object>

  • Boyut deÄŸiÅŸtirme:
    flashResizer.resize(genislik, yukseklik,’flashid‘);
  • Büyütme:
    flashResizer.zoomin(’flashid‘);
  • Küçültme:
    flashResizer.zoomout(’flashid‘;

Kod

var flashResizer = {
    ZOOM_IN:1,ZOOM_OUT:-1,
    fo:null,ZOOM_FACTOR:0.1,
    findObj:function(_foid){if(_foid==undefined || _foid==null){return this.fo;} this.fo=null;if (window.document[_foid]) this.fo=window.document[_foid];else if (navigator.appName.indexOf("Microsoft Internet")==-1){if (document.embeds && document.embeds[_foid]) this.fo = document.embeds[_foid];}else this.fo = document.getElementById(_foid);return this.fo;},
    resize:function(_w,_h,_foid){if(this.findObj(_foid)){this.fo.width=_w;this.fo.height=_h;}return this;},
    zoom:function(_d,_f){if(this.findObj(_f)){var zf=1+_d*this.ZOOM_FACTOR;this.resize(this.fo.width*zf,this.fo.height*zf);}return this;},
    zoomin:function(_f){this.zoom(this.ZOOM_IN,_f);},
    zoomout:function(_f){this.zoom(this.ZOOM_OUT, _f);}
}

(daha fazla…)