İlk:Iframe Mousemovement vs - ya: ebeveyn-çocuk çatışması tüm proje vardır oldukça sert kısıtlamaların
- çevrimdışı kullanılabilirlik mümkün
=> PHP gibi
Yapısı:
- index.html
- frame.html
index.html içerir:
- bir s uygu iframe:
< iframe genişliği = "% 100" yükseklik = "% 100" src = "frame.html" frameborder = "0">
</iframe>
-
devre dışı bırakılması sağ fare tıklaması için
- JavaScript: = "javascript"
< komut dili> document.onmousedo wn = disableclick;
status = "Sağ Tıklama Devre Dışı"; işlevi devre dışı bırakma (olay) {
if (event.button == 2) {
uyarısı ("TEST");
false; }}
</komut>
- başka JavaScript kullanıcı aktif değilken tespit edilmesi için:
< script> var timeoutID; işlev ayarı() {
this.addEventListener ("mousemove", resetTimer, false);
this.addEventListener ("mousedown", resetTimer, false);
this.addEventListener ("tuşa basma", resetTimer, false);
this.addEventListener ("DOMMouseScroll", resetTimer, false);
this.addEventListener ("mousewheel", resetTimer, false);
this.addEventListener ("touchmove", resetTimer, false);
this.addEventListener ("MSPointerMove", resetTimer, false);>
startTimer(); } kurmak(); işlev startTimer() {
// golnaktif
timeoutID = window çağırmadan önce X saniye bekleyin.setTimeout (goInactive, 3000); işlev resetTimer (e) {
window.clearTimeout (timeoutID);
goActive(); } işlev goInactive() {
// bir şey yap
alert ("TIMEOUT");
false; } işlev goActive() {
// bir şey yap
startTimer(); }
css dosyası da fare imleci için bazı kısıtlamalar içeriyor>
- </script:
vücut {
background-color: # f0f0f0;
imleç: none! Önemli;
-webkit-user-select: yok;
-moz-user-select: yok;
-ms-user-select: none; kullanıcı seç: yok;
}
=> Bu index.html için oldukça iyi çalışıyor - ama şu anda değil aynı dizinde yerel bir dosya olduğu iframe (için, ama aynı zamanda bir bağlantısını mümkün olmalıdır Web sitesi).
Birkaç geçici çözümler denedi ama (aynı zamanda frame.html içeriği göz böylece) canlı iframe'de web sitesi tutarken bunların hiçbiri çalıştı.
Herhangi bir çözüme açığım - komut dosyalarını çocuğa aktarıyorsa veya çocuk komut dosyalarını ebeveynlerden veya herhangi bir yer paylaşımlı özümden alıyorsa. iframe'in aynı dizinde bir çevrimdışı dosyaya yeniden yönlendirilmesi için bir çözüm varsa, bu ilk an için iyi olur.
Çok şimdiden teşekkür ederiz!
DÜZENLEME: bununla
Hala var sorunlar - bu bitmeyecek bir döngüye gelir: jQuery ile bu yapmış
$('iframe').load(function(){
$(this).contents().find("body").mousemove(function(){
var timeoutID;
function setup() {
this.addEventListener("mousemove", resetTimer, false);
this.addEventListener("mousedown", resetTimer, false);
this.addEventListener("keypress", resetTimer, false);
this.addEventListener("DOMMouseScroll", resetTimer, false);
this.addEventListener("mousewheel", resetTimer, false);
this.addEventListener("touchmove", resetTimer, false);
this.addEventListener("MSPointerMove", resetTimer, false);
startTimer();
}
setup();
function startTimer() {
timeoutID = (this).setTimeout(goInactive, 4000);
}
function resetTimer(e) {
(this).clearTimeout(timeoutID);
goActive();
}
function goInactive() {
alert("TIMEOUT");
return false;
goactive;
}
function goActive() {
startTimer();
}
});
});
$('iframe').attr("src","JavaScript:'iframe content'");
iframe'de her zaman sayfanın kontrolü sizde olacak mı yoksa rasgele sayfalar yerleştirmek ister misiniz? Muhtemelen olay dinleyicilerini çerçeveye ilgi duyduğunuz gibi yerleştirmelisiniz, ancak bunu yalnızca içeriğinin kontrolü üzerinde yapıyorsanız yapabilirsiniz. – kar288
Cevabınız için teşekkür ederiz - iframe'deki sayfa üzerinde tam kontrole sahibim. Ancak gelecekteki amaçlar için yabancı bir web sitesinde bir bağlantı da harika olacaktır. Şu anda zaman aşımı sadece bir uyarı ile bağlanmıştır. Ancak, web sitesinin XX saniye boyunca işlem yapılmadığında (ana sitenin!) Başlangıç sayfasına atlamasını istiyorum. Bu, scriptleri frame.html dosyasında uygulayarak nasıl mümkün olur? –
Elbette iframe ortadan kaldırmak için başka bir çözüm olabilirdi - ama PHP çalışmadığından beri nasıl bilmiyorum ...? –