/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Virker i IE men ikke i FF
Fra : Adam Ellesøe


Dato : 03-07-05 15:31

Jeg kan ikke få dette til at virke i FF.. (er ikke så habil i js, så..)
http://www.odontpoker.dk/Koden det handler om:<script language="javascript"
type="text/javascript">
<!--
function clearBox(box) {
if(box.value==box.defaultValue) {
box.value = "";
}
}

var IE4 = (document.all) ? 1 : 0;
if (IE4)
var timerID = setInterval("enableSubmit()", 200);

function enableSubmit() {
if (!IE4) return;
var form = document.maillisteform;
var currentState = form.submitmailgem.disabled;
var newState = !isEmail(form.mailliste.value);
if (newState != currentState)
form.submitmailgem.disabled = newState;
}

function isEmail(str) {
// are regular expressions supported?
var supported = 0;
if (window.RegExp) {
var tempStr = "a";
var tempReg = new RegExp(tempStr);
if (tempReg.test(tempStr)) supported = 1;
}
if (!supported)
return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
var r2 = new
RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
return (!r1.test(str) && r2.test(str));
}

//-->
</script>
<form action="mailliste/mailliste.asp" method="post"
name="maillisteform"><input name="mailliste" type="text" value="Skriv mail
her" size="14" onFocus="clearBox(this);"><div align="center"><input
name="submitmailgem" type="submit" value="gem" class='cssBorder'
disabled>&nbsp;&nbsp;</div>
</form>
--
MVH
Adam G. Ellesøe



 
 
Adam Ellesøe (03-07-2005)
Kommentar
Fra : Adam Ellesøe


Dato : 03-07-05 15:33

> Jeg kan ikke få dette til at virke i FF.. (er ikke så habil i js, så..)
> http://www.odontpoker.dk/

Koden det handler om:
<script language="javascript" type="text/javascript">
> <!--
> function clearBox(box) {
> if(box.value==box.defaultValue) {
> box.value = "";
> }
> }
>
> var IE4 = (document.all) ? 1 : 0;
> if (IE4)
> var timerID = setInterval("enableSubmit()", 200);
>
> function enableSubmit() {
> if (!IE4) return;
> var form = document.maillisteform;
> var currentState = form.submitmailgem.disabled;
> var newState = !isEmail(form.mailliste.value);
> if (newState != currentState)
> form.submitmailgem.disabled = newState;
> }
>
> function isEmail(str) {
> // are regular expressions supported?
> var supported = 0;
> if (window.RegExp) {
> var tempStr = "a";
> var tempReg = new RegExp(tempStr);
> if (tempReg.test(tempStr)) supported = 1;
> }
> if (!supported)
> return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
> var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
> var r2 = new
> RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
> return (!r1.test(str) && r2.test(str));
> }
>
> //-->
> </script>
> <form action="mailliste/mailliste.asp" method="post"
> name="maillisteform"><input name="mailliste" type="text" value="Skriv mail
> her" size="14" onFocus="clearBox(this);"><div align="center"><input
> name="submitmailgem" type="submit" value="gem" class='cssBorder'
> disabled>&nbsp;&nbsp;</div>
> </form>
> --
> MVH
> Adam G. Ellesøe
>



Lasse Reichstein Nie~ (03-07-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 03-07-05 16:33

"Adam Ellesøe" <adam_ellesoe@hotmail.com> writes:

> Jeg kan ikke få dette til at virke i FF.. (er ikke så habil i js, så..)
> http://www.odontpoker.dk/

Du mangler at fortælle os hvad det er koden skal gøre. :)

> Koden det handler om:

> <script language="javascript" type="text/javascript">

Drop "language"-attributten. "type" er tilstrækkeligt.

> <!--

Dop HTML-kommentarer.

> var IE4 = (document.all) ? 1 : 0;
> if (IE4)
> var timerID = setInterval("enableSubmit()", 200);

Det her ligner en god kandidat ... noget der kun sker i IE (version
4?). Det tyder også på at koden er så gammel at den bør revideres,
når den henviser til IE4 ved navn.

Generelt er det ikke et godt tegn at forsøge at finde browserens navn
og version. Det er ikke altid muligt, og det er sjældent den bedste
måde at gøre noget på alligevel.

Så, fjern "if (IE4)" fra ovenstående, så det sker i alle browsere.

> function enableSubmit() {
> if (!IE4) return;

Den linje skal nok også væk.

> var form = document.maillisteform;

Her anbefales den standardiserede måde at tilgå en form på:
var form = document.forms['maillisteform'];

> var currentState = form.submitmailgem.disabled;

Og elementer:
var currentState = form.elements['submitmailgem'].disabled;

> var newState = !isEmail(form.mailliste.value);

var newState = !isEmail(form.elements['mailliste'].value;

> if (newState != currentState)
> form.submitmailgem.disabled = newState;

Alt det arbejde for at undgå at sætte en værdi til det samme som den
er. Hele metoden kunne være skrevet:

function enableSubmit() {
var form = document.maillisteform;
var newState = !isEmail(form.mailliste.value);
form.submitmailgem.disabled = newState;
}

> function isEmail(str) {
> // are regular expressions supported?

Et kan man godt løbe an på i vore dage. Igen et tegn på et meget
gammel script.

[klip noget regexp der tror det genkender gydlige e-mail-adresser]

Det er ikke så trivielt endda at genkende gyldige e-mail-adresser,
og ens brugere bliver så sure når man ikke accepterer den adresse
de giver ... og som faktisk er god nok. Jeg vil anbefale et tjek
for et format så simpelt som:
???? @ ???? . ??
Det kan gøres uden RegExp'er, så selv de paraniode ikke behøver
tjekke for om de er understøttede:

function isEmail(str) {
var i = str.indexOf("@");
var j = str.indexOf(".",i+1);
return i > 0 && j > i+1 && j < str.length - 2;
}


> //-->

HTML-kommentarer skal ud :)

Held og lykke.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Adam Ellesøe (04-07-2005)
Kommentar
Fra : Adam Ellesøe


Dato : 04-07-05 11:11

> Du mangler at fortælle os hvad det er koden skal gøre. :)
Når en indtastet email adr, er valid så fjernes dissabled.. (men det havde
du nok set

>> function isEmail(str) {
>> // are regular expressions supported?
>
> Et kan man godt løbe an på i vore dage. Igen et tegn på et meget
> gammel script.
Du fik mig igen, det var en kodestump jeg havde liggende fra 2002 tror jeg


Nu ser det hele sådan ud, og det virker i IE og FF :

<script type="text/javascript">
function clearBox(box) {
if(box.value==box.defaultValue) {
box.value = "";
}
}
var IE4 = (document.all) ? 1 : 0;

var timerID = setInterval("enableSubmit()", 200);

function enableSubmit() {
var form = document.maillisteform;
var newState = !isEmail(form.mailliste.value);
form.submitmailgem.disabled = newState;
}
function isEmail(str) {
var i = str.indexOf("@");
var j = str.indexOf(".",i+1);
return i > 0 && j > i+1 && j < str.length - 2;
}
</script>

Ved ikke om jeg har fået det hele med, men ihvertfald tak for hjælpen
--
MVH
Adam G. Ellesøe



Søg
Reklame
Statistik
Spørgsmål : 177483
Tips : 31964
Nyheder : 719565
Indlæg : 6408389
Brugere : 218884

Månedens bedste
Årets bedste
Sidste års bedste