JavaScript ile Query String'e Ulaşmak

Bu aralar Javascript ile haşır neşir oluyorum. Hayatımda ilk kez kullandığım için her basit şey benim için yeni bir bilgi oluyor. Son çalışmamda URL’deki query string’e ulaşmam gerekiyordu. Bunu C# tarafında şu şekilde yapabildiğimizi biliyordum:

string str = Page.Request.QueryString["q"];

Ancak bunu Javascript ile yapmam gerekiyordu ki, hem her değişiklikte deploy yapmak zorunda kalmayayım hem de Javascript kodlarım kendi başına ayrı bir yerde durabilsin. Şöyle bir fonksiyon buldum işimi gören:

function qs(key) {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars[key];
}

Eğer “http://www.hasangok.com.tr?q=test” şeklinde bir URL’den “test” kelimesini almak istiyorsak yukarıdaki fonksiyonu şu şekilde kullanıyoruz:

var str = qs('q');

Bilgi: “Query String de ne ola?” diyenler şuraya bakabilir. Sevgiler.

Sharepoint 2013 SP.js Dosyası ile Çalışmak

Javascript Object Model kullanarak, Sharepoint 2010 üzerinde listeye bağlanıp veri çekebiliyordum. Bunun için javascript kodumuzu aşağıdaki fonksiyonun içinde kullanıyorduk:

ExecuteOrDelayUntilScriptLoaded("javascript fonksiyonu", "sp.js");

Fakat Sharepoint 2013 üzerinde bu fonksiyon çalışmıyor. Aslında çalışıyor da, neyse o mesele çok karışık :) Yapmamız gereken değişiklik şöyle:

SP.SOD.executeFunc('sp.js', 'SP.ClientContext', "javascript fonksiyonu");

Durum Mesajı

Bugün sabah erken kalktım. Yıkadığım çamaşırlar vardı onları topladım, ütüledim. Odamın düzenini değiştirdim. Tüm evi süpürdüm, ardından vileda ile sildim. Kafama tülbent bağlamaya ramak kalmıştı ki @adem_gungor kardeşim geldi beni aldı. Yalnızlık bana göre değil #fatalerror

Yeni Opera 15!

Opera Opera internet tarayıcısını daha lise birinci sınıfta keşfetmiştim, o günden bu güne (tam 11 yıldır) bilgisayarımda ikinci bir tarayıcıya ihtiyaç duyduğumu bilmem. Her versiyonda yeni bir yenilik, güzel bir güzellik yapmış bu tarayıcı yine yepyeni bir halde çıktı karşıma, 15 no’lu versiyonu ile. Opera bildiğimiz Opera. Yine güzel, yine kullanışlı, yine hızlı. Ancak bu kez Opera’yı övmek için değil, canımı çok sıkan değişiklikleri anlatmak için yazıyorum. Bana göre en önemli, en kullanışlı özelliklerinden vazgeçmişler bu yeni sürümde. Bunlar neler mi? Sıralayayım:

  1. Kapatılan sekmeler CRTL + Z tuşlarına basarak geri açılabiliyordu, artık başlık çubuğuna sağ tıklayıp son kapatılanı aç dememiz gerekiyor, kısayol tuş kombinasyonu kaldırılmış.
  2. Başlık çubuğunun sağ tarafında kapatılan sekmelerin listesini açan bir kısayol vardı ve buradan istediğimiz sayfayı tekrar açabiliyorduk. Bu da kaldırılmış, artık Opera butonuna tıklayıp “Son Kapatılanlar” alt menüsüne gitmemiz gerekiyor.
  3. Ayarlar kısmı değişmiş. Adres çubuğunda tam URL’yi göster seçeneğini bulamadım. Durum çubuğunu alt tarafa alır kullanırdım. Bununla ilgili de bir ayar yok. Daha doğrusu neredeyse hiçbir ayar yok. Ya da (umarım) başka bir ayar bölümü vardır da ben bulamamışımdır.
  4. Sol taraftan açtığımız ve İndirmeler, Kişiler, Yer İmleri, Mail vs. gibi araçlara ulaştığımız çubuk kaldırılmış. Beni en çok üzen de bu oldu.
  5. Sık Kullanılanlar yerine “Cep” diye bir şey gelmiş. Daha sonra tekrar bakmak istediğiniz sayfaların adres çubuğunun yanındaki “Kalp” işaretine basarak Cebe atıyorsunuz, daha sonra bu bölümden bu sayfaları ön izlemeleri ile birlikte görebiliyorsunuz. Bana sorarsanız yer imlerine göre kullanışsız bir değişim olmuş.
  6. Sık kullanılanları dönüştürecek bir araca “Opera” butonuna tıklayarak ulaşılabiliyor. Dönüştürülen yer imleriniz ise Hızlı Erişim sayfanıza ekleniyor. Bu da saçma geldi bana. Yer imlerine kaydettiğim sayısız siteyi hızlı erişime eklemek de ne oluyor? Yine gereksiz ve kullanışsız bir yenilik olduğunu düşünüyorum.
  7. Adres çubuğuna örneğin “hasangok” yazıp CTRL + Enter tuşlarına basınca www.hasangok.com olarak tamamlardı, artık tamamlamıyor. Bu da çok kötü olmuş.

İlk kullanımda gözüme çarpanlar bunlar. Sanki bana garezi varmış gibi, en beğendiğim ve en çok kullandığım tüm özellikler yok olmuş bu yeni Opera’da. Hala rakiplerinden çok çok önde olsa da memnuniyetsiz bir şekilde alışmaya çalışacağım. Ben her ne kadar kötülesem de, Opera kullanmaktan vazgeçmeyin efendim.

Görüşmek dileğiyle, Hoşçakalın…

Güncelleme: 02.08.2013 Opera tarafından sağlanan şu bilgi ile, CTRL + Z tuş kombinasyonu yerine CTRL + Shift + T kombinasyonu kullanılabileceğini öğrendim. CTRL + Enter ise 17.02.2013 tarihinde yayınlanacak sürümde yer alacakmış. Kendilerine teşekkür ediyoruz…

SharePoint Media Web Part ile Video Oynatmak

Son birkaç gündür Coca-Cola için bir video player web part’ı yazmaya çalışıyorum. Bunun için öncelikle “flow player” kullanmak istesem de, Internet Explorer’da çıkarttığı sorunlar yüzünden bundan vazgeçtim ve SharePoint içinde gelen “Media Web Part“ı kullanmaya karar verdim. Bu web part’ı sayfamıza dinamik olarak ekleyip istediğimiz video’yu oynatabiliyoruz. Bunun için öncelikle “mediaplayer.js” dosyasını sayfamıza eklememiz gerekiyor:

<script type="text/javascript" src="/_layouts/mediaplayer.js"></script>

Daha sonra aşağıdaki kodları kullanarak media webpartımızı videoDiv adını vereceğimiz bir div içerisinde oluşturabiliyoruz.

 $(document).ready(function () {
 var videoHolder = document.getElementById(videoDiv);

mediaPlayer.createMediaPlayer(
 videoHolder, videoHolder.id, 461px, 272px,
 {
 displayMode: Inline,
 mediaTitle: Başlık,
 mediaSource: Video URL,
 previewImageSource: ,
 autoPlay: false,
 loop: true,
 mediaFileExtensions: wmv;wma;avi;mpg;mp3;,
 silverlightMediaExtensions: wmv;wma;mp3;
 }
 );
 });

Not: ready() fonksiyonunu kullanmadığımız takdirde, sayfa yüklenmeden bu kodların çalışması ve istediğimiz div’in bulunamaması gibi bir sorun oluşabiliyor. Bu yüzden sayfa tamamen yüklenene kadar bu kodu bekletmek en doğrusu. .ready() fonksiyonu için Jquery, Jquery için aşağıdaki ifade gereklidir:

<script type="text/javascript" src="./path/jquery.min.js"></script>