• 9 odgovora
  • 3.300 pregleda
Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 15:59 · pre 195 meseci #1
Pozdrav,

Pravim sajt i jedan deo javascripte treba da zabrani klik na nazad u browseru i to samo na pojedinim stranicama.
Evo scripte:

Code:

function recallhashcheck()
{
setTimeout("checkhashb()",50);
}



function checkhashb() {
if (String(window.location.href).indexOf("#back") != -1) {

window.location.hash = "#";
document.location.hash = "#";
location.hash = "#";


if ( document.getElementById("ctl00_LeadSiteContent_BackBtn") )
{
if ( document.getElementById("ctl00_LeadSiteContent_BackBtn").type == "button" )
{
document.getElementById("ctl00_LeadSiteContent_BackBtn").click();
}
}

if ( document.getElementById("ctl00_LeadSiteContent_btnBack") )
{
if ( document.getElementById("ctl00_LeadSiteContent_btnBack").type == "button" )
{
document.getElementById("ctl00_LeadSiteContent_btnBack").click();
}
}
}
recallhashcheck();
}



if (document.getElementById("ctl00_LeadSiteContent_BackBtn")||document.getElementById("ctl00_LeadSiteContent_btnBack")||document.getElementById("ctl00_LeadSiteContent_btnCancel")||document.getElementById("ctl00_LeadSiteContent_Cancelbtn")) {

for ( i = 0; i < 3; i++ ) {

var randomnumber=Math.floor(Math.random()*110000)

window.location.hash = "#back_" + randomnumber;
document.location.hash = "#back_" + randomnumber;
location.hash = "#back_" + randomnumber;

}

window.location.hash = "#";
document.location.hash = "#";
location.hash = "#";

setTimeout("checkhashb()",50);

}



Ovo se radi preko hash istorije, ova javascript je postavljena na dnu stranice...

Radi dobro na svim browserima, ne izbaci gresku, jedino na Internet Exploreru 7 ne radi...

Ja bih i uspeo da napravim, ali jedino na serveru imam ovakvu gresku. Kad skinem komepletnu stranicu na svoj racunar sve radi kako treba.
To me jos vise zbunjuje...

Uradi se prvi deo, ali kao da se nikad ne pozove:

setTimeout("checkhashb()",50);

Ili postoji neka greska koja zabrani ponavljanje...

Treba mi bas brzo pomoc.




Hvala vam...
Re: Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 17:57 · pre 195 meseci #3
Nemam nikakav debugger, imam samo onaj osnovni, ono da izbaci gresku i to je skroz nedefinisano...

Cega ima previse?

Ali ne razumem, ako scripta ne radi na serveru, kako radi dok je na mom racunaru?
Re: Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 18:03 · pre 195 meseci #4
btw Možda si sve to mogao efikasnije da uradiš ovako:
Code:
(function f() {
    setTimeout(function() {
        //ovde ide kôd tvoje f-je checkhashb()

        f();
    },50);
})();

I to bi se sve nalazilo u tom if-u na kraju tvog kôda, umesto tog dela gde pozivaš setTimeout().
Re: Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 18:08 · pre 195 meseci #5
Valjda je to isto?

E, a da li bi pomoglo setInterval?

I mislim da je greska negde u ovom delu:

Code:

if (String(window.location.href).indexOf("#back") != -1) {

}


Da li treba ovo drugacije nekako da bude?
Re: Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 20:05 · pre 195 meseci #7
Izgleda da IE7 ne moze da prepozna kad se menja hash vrednost, a ne cela lokacija...

Jer stalno vidi lokaciju kao: lokacija + "#"

Iako je gore promenjeno u "#back_23958"...

Jel postoji neka druga opcija da se proveri adresa?

Proveravao sam sa:

Code:

window.location.href
document.location.href
location.href


I nijedno ne moze da pronadje pravu vrednost...
Samo prikazuje kao: lokacija + "#"



Da li neko zna kako drugacije da se proveri adresa?
Re: Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 20:25 · pre 195 meseci #9
Da, znam kako radi hash...

Ali ja vidim "#back_98676" gore u address baru, ali kad ukucam:

Code:

javascript: alert(location.hash);


Izbaci mi samo "#"... Cak i kad ne pise gore nista, ako pritiscem dovoljno puta nazad pojavi se lokacija bez "#", i cak i tad kad ukucam ovo gore pojavi mi se da je hash "#".


Isto vazi i za "location.href"...
Re: Problem sa Internet Explorerom 7 i to samo preko servera 14.10.2010. u 21:26 · pre 195 meseci #10
Kao da IE uopste ne otvara stranice sa hash...

Stranicu mozete naci na ovoj adresi:

http://www universallinesins com/final/business.php

Ukucajte ZIP kod: 96140

I videcete kako se menja gore adresa i na kraju ostane na:
http://www universallinesins com/final/Business/BusinessInfo.php?add=business#

I kad pritisnete nazad na browseru videcete da se zameni i opet vrati na adresu + "#", ali je kliknuto Go back dugme...

Ali uopste nece da radi sa Internet Explorerom...


I nesto sto je skroz drugacije, skroz nejasno, je to sto scripta nekad radi, a nekad ne...
Kao npr na:

http://www universallinesins com/final/auto.php

Ne znam uopste od cega to zavisi...

SetTimeout radi dobro, jer stalno proverava lokaciju, ali ne znam zasto nekad radi a nekad ne...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme