-
Üyelik
13.12.2019
-
Yaş/Cinsiyet
36 / E
-
Meslek
freelancer
-
Konum
Ankara
-
Ad Soyad
M** Ç**
-
Mesajlar
15
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
merhaba arkadaşlar
web sayfamda .onblur ve onfocus javascript kodlarını kullanıyorum.
Kullanıcı, sayfamı kapatmadan başka sekme açarsa , otomatik geri sayım yaptırıp kapatmadığı sayfayı, ana sayfaya yönlendiriyorum.
Buraya kadar sorun yok her şey güzel çalışıyor.
Fakat sayfanın bir kısmına iframe gömülmüş ise ve kullanıcı iframe alanında işlem yapıyorsa bu onblur devreye giriyor.Sanki farklı sekme açmış gibi geri sayımı başlatıyor.
Buna bir çözüm var mı? Sayfa içerisindeki iframe alanında yer alan sayfada aynı domain.ama pencere kontrolu olduğu için sanki başka pencere açılmış gibi yapıyor.
Yardım eder misiniz?
dnaz
Back to Front End
Kullanıcı
-
Üyelik
02.06.2016
-
Yaş/Cinsiyet
41 / E
-
Meslek
Software
-
Konum
Adana
-
Ad Soyad
K** A**
-
Mesajlar
704
-
Beğeniler
101 / 147
-
Ticaret
34, (%100)
Window kontrolünde iframe hariç olarak belirlersen olmaz. Kod görmeden fazla yardım edemem. Yada iframe in focus ve blur özelliğine yeni işlem tanimlamalisin.
1 kişi bu mesajı beğendi.
-
Üyelik
13.12.2019
-
Yaş/Cinsiyet
36 / E
-
Meslek
freelancer
-
Konum
Ankara
-
Ad Soyad
M** Ç**
-
Mesajlar
15
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
window kontrolunde iframe nasıl hariç tutacağım?
iframe kodum standart. olarak kullandım
kullandığım javascript kodu
var after_title = 'Sayfaya geri dönün!';
var dafault_title = document.title;
window.function () { document.title = after_title; saniyeBaslat(); }
window.function () { document.title = dafault_title;saniyeDurdur(); }
function beep() {
var snd = new Audio("data:audio/wav;base64,//uQAAAAACU=");
snd.play();
}
var deger;
var saniye=5;
function saniyeDurdur()
{ saniye=5;
window.clearTimeout(deger);
}
function saniyeBaslat()
{
if(saniye >0){
saniye --;
beep();
deger=window.setTimeout('saniyeBaslat()',1000);
}else{
window.clearTimeout(deger);
location.href = './index.php';
}
}
dnaz
Back to Front End
Kullanıcı
-
Üyelik
02.06.2016
-
Yaş/Cinsiyet
41 / E
-
Meslek
Software
-
Konum
Adana
-
Ad Soyad
K** A**
-
Mesajlar
704
-
Beğeniler
101 / 147
-
Ticaret
34, (%100)
Kodlarını inceledim. Çözüm, focus yada blur kontrolünü window olarak değil de, iframe ide içine alacak şekilde document şeklinde almak olacaktır.
Aşağıdaki kodlar işini görecektir. Saniye olan kısmını dilediğin şekilde değiştirebilirsin.
var after_title = 'Sayfaya geri dönün!';
var dafault_title = document.title;
var deg;
window.function () { document.title = after_title; beep(); deg=setTimeout(kontrol,10000); }
window.()=>(deg)?clearTimeout(deg):null;
function beep() {
var snd = new Audio("data:audio/wav;base64,//uQAAAAACU=");
snd.play();
}
function kontrol()
{
if(document.hasFocus()){
return;
}else{
location.href = './index.php';
}
}
1 kişi bu mesajı beğendi.
-
Üyelik
13.12.2019
-
Yaş/Cinsiyet
36 / E
-
Meslek
freelancer
-
Konum
Ankara
-
Ad Soyad
M** Ç**
-
Mesajlar
15
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
Teşekkür ederim. Kontrol edip yazacağım tekrar
-
Üyelik
13.12.2019
-
Yaş/Cinsiyet
36 / E
-
Meslek
freelancer
-
Konum
Ankara
-
Ad Soyad
M** Ç**
-
Mesajlar
15
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
üstat bunu yaptım ama bu sefer şöyle bir sorun var.
iframe içinde tıklama yapıldıktan sonra geri sayım işlemi tamamen duruyor, title değişmiyor. en önemlisi kullanıcı yeni sekme açsada geri sayım çalışmıyor
benim istediğim ise sekme içinde iframe olsun olmasın hiç bir şekilde geri sayım çalışmayacak, eğer kullanıcı yeni sekme açarsa geri sayım çalışacak.
javascriptte yeniyim kusara bakma,"iframe ide içine alacak şekilde document şeklinde almak " derken ne yapacağımı anlayamadım.
-
Üyelik
13.12.2019
-
Yaş/Cinsiyet
36 / E
-
Meslek
freelancer
-
Konum
Ankara
-
Ad Soyad
M** Ç**
-
Mesajlar
15
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
iframe içine tıklandığında başlık değişmeme sorunu çözdüm.Tek sıkıntı iframaye tıkladıktan sonra browserda sekme açılırsa onblur aktif olmuyor.
iframe dışına tıklandığında ve sonrasında browserda yeni sekme açılırsa onblur aktif oluyor ve title alanında yazı değişip yönlendirme için geri sayım başlıyor.
aklıma gelen basit soru hasFocus fonksiyonunun tersi var mı ?
function kontrol()
{
if(document.hasFocus()){
document.title = dafault_title;
return;
}else{
location.href = './index.php';
}
}
-
Üyelik
13.12.2019
-
Yaş/Cinsiyet
36 / E
-
Meslek
freelancer
-
Konum
Ankara
-
Ad Soyad
M** Ç**
-
Mesajlar
15
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
Arkadaşlar soruna çözüm buldum.Daha sonra bu sorunla karşılaşacak olursa kullanabilirler.
Bu tarz sekme görünürlük kontrolu yapmak isterseniz Page Visibility API kullanılmalıymış. onblur değil
@Dnaz üstada da göstermiş olduğu yardımlardan yol göstericiliğinden dolayı teşekkür ederim
function handleVisibilityChange() {
if (document.hidden) { // equivalent to "blur"
document.title = after_title; beep(); deg=setTimeout(check,2000);
} else { // equivalent to "focus"
if (deg) {
clearTimeout(deg);
}
}
}
document.addEventListener("visibilitychange", handleVisibilityChange, false);
1 kişi bu mesajı beğendi.