vehbiakdogan

Senior Sofware Developer

Javascript-jQuery

jQuery Kullanıcı Adı Kontrolü

Merhaba arkadaşlar

Normalde kullanıcı adını Php kısmında kontrol ettirir düzenli değilse uyarı verdirirdik ama bunun yerine Kullanıcı Adı Kontrolü  front-end kısmında yaparsak sayfa yenilenmeden kullanıcıda kullanıcı adınının normal forma uyup uymadığını görebilir ve ek olarak sunucuya fazladan sorgu yapmayız. Tabiki bu güvenilir bi yöntem değildir. Back-end kısmında da yine kontrol ettirmeniz gerekir.

Kullanıcı Adı Kontrolü

Öncelikle regex yani düzenli ifade kullanarak işlem yaptım. Kısaca regex kısmına bakarsak:

var regex = new RegExp("[^a-zA-Z0-9-_]","i");

Burada diyoruzki a-zA-z yani ingiliz alfabesindeki tüm küçük ve büyük harfler, 0-9 rakamlar ve  -_ işaretleri gördüğünde anlamına gelir. Başına koyduğumuz şağka (^) işareti ise değilini alır yani bu işaretlerden başka birşey olursa işlem yap manasındadır. ikinci parametre olarak verdiğimiz i parametresi de büyük küçük harf duyarlılığını kaldırır. Bu parametre şart değildir.

Kodlarımız:

<script type="text/javascript">
	$(function(){
		var nesne;
		var regex = new RegExp("[^a-zA-Z0-9-_]","i");
		$("#kadi").on({
		
			keyup: function(){
				nesne = $(this);
				nesne.val(nesne.val().replace(regex,""));
			
			},
			keypress:function(){
				nesne = $(this);
				nesne.val(nesne.val().replace(regex,""));
			
			},
		});	
		
	});

 

Kodları çalıştırabilmeniz için sayfanızda jQuery kütüphanesinin dahil olması ve #kadi id sine sahip bir elementiniz olması gerekir.

Bunun gibi E-posta kontrolü şifre kontrolü gibi işlemleri regex ile kolayca yapabilirsiniz.

Bol yazılımlı günler 🙂

Javascript-jQuery

Javascript Global Değişkenler oluşturmak

Merhaba arkadaşlar
Global değişkenler  kapsam(scope) alanı olmadan istediğimiz yerde kullanabildiğimiz  değişkenlerdir.  javascriptte global değişkenler  oluşturabilmemiz için ise bizim window nesnemizden bir değişken oluşturmamız gerekiyor. Örnek verecek olursak:


window.sayi = 5;

function sayiNe() {

alert(sayi);

}

&nbsp;

şeklinde kullanabiliriz. Burada normal değişken olarakta çalışabilir ama değişkeni html in içinde tanımlamak zorunda olduğumuz durumlar olabilir. Bu gibi durumlarda değişkenimizi global olarak tanımlamazsak, fonksiyonumuz değişkeni bulamayacak ve undefined diyecektir.  Bu gibi durumların önüne geçmek için global değişkenler oluşturmamız gerekir.

 

Bol yazılımlı günler 🙂

Javascript-jQuery

jQuery Telefon Ekranındaki Dönmeyi Algılamak

Merhaba arkadaşlar jQuery ile bir projemde ekranını pozisyonu değiştiğini algılamam gerekiyordu ve bunun için basit bir kod buldum sizlerlede paylaşmak istedim
jQuery ile Telefon Ekranındaki Dönmeyi Algılamak için aşağıdaki kodu kullanabilirsiniz.

$(window).on('orientationchange', function (e) {
alert("Ekran Pozisyonu Değişti.");
});

 

DEMO

telefonunuzla burdan kontrol edebilirsiniz.

Javascript-jQuery

Hatalı Resimler İçin Resmin Boyutuna Göre No-Image Resmi Yapmak

Merhaba arkadaşlar bugün düzenlemem için başkasının yapmış olduğu bir siteyi getirdiler sitede farklı boyutlarda birçok resim hatalıydı açılmıyordu müşteri açılmayan resimlerden şikayetçi olduğu için resimlerin kendi boyutlarında no-image tarzında bir resim ekletmem gerekiyordu resimlerin genelinin boyu farklı olduğu için biraz farklı bir yol izledim.

Öncelikle https://placeholdit.imgix.net Sitesinden yararlandım bu sitede bizim isteğimize göre resim oluşturuyor.

Resim Oluşturmak için tabi linke bazı parametreler vermemiz gerekiyor:
1.parametre txt Resimde ne yazısı olmasını istiyorsak onu yazıyoruz.
2.parametre: txtsize Yazı Boyutunu Ayarlıyor.
3. parametre w Resmin Genişliği
4. parametre h Resmin yüksekliği ve bize resim oluşturmuş oluyor.

Örnek Resim

Şimdi Sıra Geldi Sorunu Çözmeye:

$("img").error(function(){
		var genislik = $(this).width(),
			yukseklik = $(this).height();
		$(this).attr("src","https://placeholdit.imgix.net/~text?txtsize=23&txt=No-Image&w="+genislik+"&h="+yukseklik);
	});

Önce resim boyutlarını aldım daha sonra resmin yerine aynı boyutlarda no-image şeklinde yeni resim ekledim ve sorun çözülmüş oldu 🙂

Sağlıcakla kalın..

Javascript-jQuerySorun Ve Çözümler

Google Chrome Javascript Konsoluna Css Uygulama

Merhaba arkadaşlar facebookta falanda görmüşsünüzdür f12 ye basıp console(konsol) a girince ordaki yazıya css uygulandığını görürsünüz.
Şimdi bizde Javascript Konsoluna Css Uygulama nasıl yapılır bakalım.

var css = "font-size:50px; color:#f00";
console.log("%c Vehbi Akdoğan Konsolda Css Uygulama",css);

Yukarıdaki şekilde uygularsanız sizde konsola css verebilirsiniz.

Burda %c parametresi bizim css yazacağımız anlamına gelir.
Bunun gibi yine parametreler var İsteyenler Buradan Bakabilirler.

Javascript-jQuery

jQuery Ctrl+Enter İle Post İşlemi

Twitter Google gibi büyük sitelerde görmüşünüzdür ctrl+enter ile tweet gönderme,mesaj gönderme, gmailde mail gönderme işlemi falan yapılabiliyor. bugün buna benzer bir örnek paylaşacağım size.

Mantık şu normal bir html formumuz var ve biz kullanıcı ctrl ve enter tuşuna aynı anda basmışmı bunu kontrol ettiriyoruz eğer basmışsa form ile ilgili işlemlerimizi yapıyoruz.
Hemen Örneğimizi Paylaşayım:

ctrl+enter post işlemi

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
	<meta name="description" content=" " />
	<meta name="keyword" content=" " /> 
	<meta name="author" content="Vehbi Akdogan" />
	<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
	<script type="text/javascript">
	$(function(){
		$.formPost = function(){
			// burda ajax ile formunuzu post ettirebilirsiniz ama ben şuan ajax kullanmayacağım 
			var mesaj = $.trim($("#mesaj").val());
			if(mesaj != "") {
				$(".mesajlar").append(' <div class="mesaj">'+ mesaj +'</div>');
				$("#mesaj").val("");
			}
		}
		
		
		$(window).keypress(function(event){
			// bir tuşa tıklandığında bu fonksiyonumuz çalışacak
			if(event.which == 10 && event.ctrlKey) // enter ve ctrl ye aynı anda basılmışmı diye kontrol ediyoruz
				$.formPost(); // basılmışsa post işlemi gerçekleşsin
			
			
		});
	});
		
	</script>
	<style type="text/css">
		.mesaj {
			width:100%;
			padding:5px;
			box-sizing: border-box;
			-webkit-box-sizing: border-box;
			border-bottom:1px dashed #ddd;
			margin-bottom:5px;
		}
		button,textarea {
			display:block;
			margin-top:5px;	
		}
		.mesajlar {margin-top:20px;}
	</style>
</head>
<div style="width:500px;margin:0 auto">
 <form action="#" method="post" id="forms">
 	<label>Mesajınız</label>
 	<textarea name="mesaj" id="mesaj" cols="30" rows="10"></textarea>
 	<button type="post">Gönder</button>
 </form>
 <div class="temizle"></div>
 <div class="mesajlar"></div>
 
 </div>
</body>
</html>


Sayfada birden fazla formunuz olabilir bunun içinde kullanıcının hangi formda olduğunu bulmak için diyelimki 1. formda textarea nın içinde onu target methodu ile alıp parent methodu ile de forma geçiş yapabilirsiniz. geliiştirmek size kalmış ama temel mantık yukarıdaki yaptığım şekilde işliyor.

DEMO

Html-Html5Javascript-jQuery

Twitter Otomatik Takip Etme, Unf,Favori Kodları [01-08-2015]

Merhaba arkadaşlar bu aralar kafamı twitter takipçilerine sarmam nedeniyle bende takipçi kasayım dedim ama genelde uygulamalardan saçma sapan tweetler başkalarını takip etmeler falan oluyor bu yüzden doğal yöntemlerle kasmaya karar verdim ne kadar doğalsa artık 🙂
Genelde takipçi kasmak için milleti taki edersin onlarda seni takip ederler takio etmeyenleride takipten çıkarsın olay budur şimdi herkesi tek tek elle takip etmekten üşendiğim için bende kod yazayım dedim 🙂

Tüm Kodların Genel Kullanımı

Google Chrome Kullanıcıları için;
1- Sağ Tıklayıp öğeyi denetle diyoruz
2- altta açılan pencerede console(konsol) a tıklıyoruz.
3- Kodlarımızı oraya yapıştırıp Enter a basıyoruz.

Twitter Otomatik Takip Etme Kodu

Öncelike TT olan hashtaglara giriyoruz (anasayfadayken sol tarafta görünen taglar tt taglardır.)
Daha Sonra Genel Kullanımdaki maddeleri yapıp aşağıdaki kodu oraya yapıştırıyoruz.

var tweet = $(".tweet");
	setInterval(function(){
		tweet.each(function(){
			$(this).find(".js-user-profile-link").trigger("mouseover");
			$("button.user-actions-follow-button").trigger("click");
			$(this).remove();
		});		
	},500);

Ve Otomatik insanları takip etmeye başlıyoruz.

Twitter Unfollow Yapma kodu

Twitter Sizi Takip Etmeyenleri Unfollow Yapma Kodu
Öncelikle Profilinizdeki Takip EdiliyorSekmesine Tıklıyorsunuz.
Daha sonra Genel Kullanımdaki maddeleri yaparak aşağıdaki kodu yapıştırıyorsunuz.

Twitter Unfollow Yapma Kodu

setInterval(function() {
 $(".FollowStatus").each(function(){
 $(this).parents(".Grid-cell.u-size1of2.u-lg-size1of3.u-mb10").remove();
 });
 $("div:not(.not-following) > .user-actions-follow-button").click();
}, 20000);
setInterval(function() {
 $(".Grid-cell.u-size1of2.u-lg-size1of3.u-mb10").remove();
}, 30000);
setInterval(function() {
 window.scrollTo(0,document.body.scrollBottom);
},5000);
setInterval(function() {
 window.scrollTo(0,document.body.scrollHeight);
},1000);


Twitter Otomatik Favori Ekleme Kodu

Bu kodu istediğiniz sayfada çalıştırabilirsiniz.
Yapmanız Gereken nerede favori yapmak istiyorsanız o sayfaya gidip genel kullanımdaki maddeleri yapmanız.

Twitter Otomatik Favori Ekleme Kodu

setInterval(function(){
$(".favorited").parents(".js-stream-item.stream-item.stream-item.expanding-stream-item").remove();
var yeni_tweet = $(".stream-container").find(".new-tweets-bar.js-new-tweets-bar").attr('data-item-count');
var tweet = $('.stream-items.js-navigable-stream >.js-stream-item.stream-item.stream-item.expanding-stream-item').length;
if(tweet > 0){
$(".ProfileTweet-actionButton.js-actionButton.js-actionFavorite.js-tooltip")[0].click()
setTimeout(function(){
$('.js-stream-item.stream-item.stream-item.expanding-stream-item')[0].remove();
},500);
}
if(tweet < 2 && yeni_tweet > 0){
$(".new-tweets-bar.js-new-tweets-bar").click();
}
},1000);

Günlük Aşırı Yapmamanızı Tavsiye Ederim.

Bol Takipler 🙂 @vehbiakdogan

Javascript-jQuery

jQuery offset() kullanımı

jQuery offset methodu seçmiş olduğumuz bir elementin başlangıca uzaklığını verir. yani şöyle ki bir div elemeni seçtik ve bunun üst köşte noktasının kordinantlarını almak istiyoruz bunu offset methodu kullanarak çok rahat alabiliriz.

Parametreler

top: tarayıcının üst kısmına ne kadar uzakta olduğunu gösterir.
left: Tarayıcının yan tarafından ne kadar uzakta olduğunu gösterir.

Kullanımı

Bir Elemente ait top left değerini nasıl alacağımıza bakalım:


        <span id="x"></span>
	<span id="y"></span>
	<div class="yer"></div>

Html yapımız böyle olsun.


<style type="text/css">
	*,body {
		padding:0;
		margin:0;
	}
		.yer {
			width:200px;
			height:200px;
			background:#555;
		}
	</style>

Css Dosyamız divimiz belli olsun diye background verdim.

Jquery kodlarımız:

$(function(){
			var pozisyon = $(".yer").offset(), // fonksiyonumuz 
				x = $("span#x"), // left değerini yazdıracağımız element
				y = $("span#y"); // top değerini yazdıracağımız element
			x.html(pozisyon.left); // left değerini yazdırdık
			y.html(pozisyon.top); // top değerini yazdırdık
});

Şeklinde x ve y değerlerini alabiliyoruz.

Şimdi Değiştirmeye bakalım html ve css aynı şekilde olsun js dosyamıza eklemeler yapalım.

$(function(){
			var pozisyon = $(".yer").offset(), // fonksiyonumuz 
				x = $("span#x"), // left değerini yazdıracağımız element
				y = $("span#y"); // top değerini yazdıracağımız element
							
			$(window).mousemove(function(e){
				$(".yer").offset({
					"top" 	: 	e.pageY,
					"left"	: 	e.pageX
				});
				x.html(e.pageY); // left değerini yazdırdık
				y.html(e.pageX); // top değerini yazdırdık
			});
			
			
		});


Mousenin kordinantlarını dive verdik. ( mouse takip eden reklam uygulamasıda yapmış olduk 🙂 )

Demo : Demoya Bak

Html-Html5Javascript-jQuery

Tarayıcıda Json Çıktılarını Renkli Göstermek İçin Güzel Bir Eklenti

Json ile sürekli etkileşim içinde bulunan arkadaşlar bilir tarayıcıda tek satır halinde açıldığı için hep sayfa kaynağını görüntüleyip ordan bakmak zorunda kalırız.

Belli bir zamandan sonra bunun aşırı sıkıcı geldiğini söyleyebilirim.

Bunun için jSon formatter adlı tarayıcı eklentisini farkettim ve kullanmaya başladım artık json kodlarını zengin metin editöründeymiş gibi görüntüleyebilirsiniz.

Eklentinin Adresi : Eklentiyi Kur
Eklentnin Github Adresi : Github Üzerinden Görüntüle

Açık kaynaklı olan eklentiyi sizde geliştirebilirsiniz.

Javascript-jQuery

Gmaps.js İle Haritadan istediğimiz noktaya ait kordinantları alma

Öncelikle Gmaps.js Dosyasını github üzerinden indiriyoruz.

Şimdi sıra geldi istediğimiz noktanın kordinantını bulmaya.

Ben istediğim noktaya ait kordinant bulmak için gmaps.js içinde bulunan outside parametresinden yararlandım arkadaşlar daha farklı basit çözümü olan arkadaşlar olursa benimle de paylaşırlarsa sevinirim.

Kullandığımız methodlardan bahsedeyim.

Marker

marker harita işaretlemek için kullandığımız kırmızı işaretçi.

outside methodu

Çizilen bir alan içerisinden işaretçiyi çıkardığımızda çalışan fonskiyon.
İki parametre alıyor (marker,fences).

Artık Kodlarımızı yazmaya başlayabiliriz.
Githubdan indirdiğimiz dosya içinden gmaps.js dosyasını alyoruz. diğerleri bizi ilgilendirmiyor şimdilik.

Daha sonra standart bir html sayfası açıp jQuery dosyamızı ve gmaps.js dosyamızı sayfamıza dahil ediyoruz.
Ayrıca google maps ın vermiş olduğu api dosyasınıda dahil ediyoruz.
google maps api dosyasını BURADAN indirebilirsiniz.
Şimdi sayfa yapımız aşağıdaki gibi oldu.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Vehbi Akdoğan | gmaps.js kullanımı </title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
  <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
  <script type="text/javascript" src="gmaps.js"></script>
</head>
<body>
<div class="ortala">
</div>
</body>
</html>




Daha sonra sayfamıza haritayı göstermek için #map idli bir div ve alacağımız kordinantlar için de iki adet (x,y) input ekliyorum.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Vehbi Akdoğan | gmaps.js kullanımı </title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
  <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
  <script type="text/javascript" src="gmaps.js"></script>
  <style type="text/css">
  	#map {
  		width:500px;
  		height: 500px;
  		overflow: hidden;
  	}
  	.ortala {
  		width:500px;
  		margin:0 auto;
  	}
  	input {
  		margin-right:5px;
  		margin-top:5px;
  		
  	}
  </style>
</head>
<body>
<div class="ortala">
      <div id="map"></div>
      <input type="text" disabled="" name="lat" value="0" />
      <input type="text" disabled="" name="lng" value="0" />
</div>
</body>
</html>



Şimdi sıra geldi harita ile ilgili dosyamıza.


<script type="text/javascript">
    var map;
    $(document).ready(function(){
      map = new GMaps({
        el: '#map',
        lat: 39.908611,
        lng: 41.27694399999996
      });
      // haritamızı oluşturduk  lat,lng koordinantları gösteriyor.
      // şuan da erzurum koordinantları na göre açtık
      
     var circle = map.drawCircle({
        lat: 39.908611,
        lng: 41.27694399999996,
        radius: 5,
        strokeColor: '#fff',
        strokeOpacity: 0,
        strokeWeight: 3,
        fillColor: '#fff',
        fillOpacity: 0
      });
      // haritada bir adet circle oluşturduk ama opasitesini 0 yaptığım için haritada görünmeyecek 
      // koordinantları almamız için gerekli 
      
      
      // bir adet marker yani işaretçi ekledik haritaya gene erzurum merkezi işaretlettim ben 
	map.addMarker({
        lat: 39.908611, 
        lng: 41.27694399999996,
        draggable: true, // marker in sürüklenebilme özelliğini açtık
        fences: [circle], // bu içinde bulunacağı alanı gösteriyor işaretlediğim alan circle nin içinde şuan 
        outside: function(m, f){ // circlenin dışına çıkınca çalışacak fonksiyonum
          $("input[name=lat]").val(m.getPosition().lat()); // x kordinantını inputa yazdırdım  
          $("input[name=lng]").val(m.getPosition().lng()); // y kordinantını inputa yazdırdım 
        }
      });
      
      
    });
  </script>

Sayfamızın Son Hali

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Vehbi Akdoğan | gmaps.js kullanımı </title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
  <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
  <script type="text/javascript" src="gmaps.js"></script>
  <style type="text/css">
  	#map {
  		width:500px;
  		height: 500px;
  		overflow: hidden;
  	}
  	.ortala {
  		width:500px;
  		margin:0 auto;
  	}
  	input {
  		margin-right:5px;
  		margin-top:5px;
  		
  	}
  </style>
  <script type="text/javascript">
    var map;
    $(document).ready(function(){
      map = new GMaps({
        el: '#map',
        lat: 39.908611,
        lng: 41.27694399999996
      });
      // haritamızı oluşturduk  lat,lng koordinantları gösteriyor.
      // şuan da erzurum koordinantları na göre açtık
      
     var circle = map.drawCircle({
        lat: 39.908611,
        lng: 41.27694399999996,
        radius: 5,
        strokeColor: '#fff',
        strokeOpacity: 0,
        strokeWeight: 3,
        fillColor: '#fff',
        fillOpacity: 0
      });
      // haritada bir adet circle oluşturduk ama opasitesini 0 yaptığım için haritada görünmeyecek 
      // koordinantları almamız için gerekli 
      
      
      // bir adet marker yani işaretçi ekledik haritaya gene erzurum merkezi işaretlettim ben 
	map.addMarker({
        lat: 39.908611, 
        lng: 41.27694399999996,
        draggable: true, // marker in sürüklenebilme özelliğini açtık
        fences: [circle], // bu içinde bulunacağı alanı gösteriyor işaretlediğim alan circle nin içinde şuan 
        outside: function(m, f){ // circlenin dışına çıkınca çalışacak fonksiyonum
          $("input[name=lat]").val(m.getPosition().lat()); // x kordinantını inputa yazdırdım  
          $("input[name=lng]").val(m.getPosition().lng()); // y kordinantını inputa yazdırdım 
        }
      });
      
      
    });
  </script>
</head>
<body>
<div class="ortala">
      <div id="map"></div>
      <input type="text" disabled="" name="lat" value="0" />
      <input type="text" disabled="" name="lng" value="0" />
</div>
</body>
</html>




Şeklinde Oldu.

Daha farklı basit çözümleri olan arkadaşlar olursa benimle paylaşırlarsa çok memnun olurum.

DEMO / DWONLOAD

Javascript-jQuery