mboost-dp1
Sne og PHP
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg har et lille java-script, jeg gerne ville have til at kører på et af mine sites. Men nu er problemet at jeg ikke kan få det til at virke.
Hvis jeg placerer det før "<?php" så bliver sneen vist i IE, men jeg kan ikke logge ind. I FireFox bliver sneen ikke vist, og jeg kan ikke logge ind.
Hvis jeg placerer det et sted mellem "<?php" og "?>" så får jeg bare en ” Parse error: parse error, unexpected '<' in /usr/home/web/web21475/syllable/news.php on line xx”
Er der nogle der har en god ide?
Hvis jeg placerer det før "<?php" så bliver sneen vist i IE, men jeg kan ikke logge ind. I FireFox bliver sneen ikke vist, og jeg kan ikke logge ind.
Hvis jeg placerer det et sted mellem "<?php" og "?>" så får jeg bare en ” Parse error: parse error, unexpected '<' in /usr/home/web/web21475/syllable/news.php on line xx”
Er der nogle der har en god ide?
Scripted ser sådan ud:
<html><body><SCRIPT LANGUAGE="JavaScript1.2">
<!-- Original: Altan ([email protected]) -->
<!-- Web Site: http://www.altan.hr/snow -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
var no = 5; // snow number
var speed = 10; // smaller number moves the snow faster
var snowflake = "http://syllable.burningshadow.dk/snow.gif";
var ns4up = (document.layers) ? 1 : 0; // browser sniffer
var ie4up = (document.all) ? 1 : 0;
var dx, xp, yp; // coordinate and position variables
var am, stx, sty; // amplitude and step variables
var i, doc_width = 1024, doc_height = 768;
if (ns4up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {
dx[i] = 0; // set coordinate variables
xp[i] = Math.random()*(doc_width-50); // set position variables
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*20; // set amplitude variables
stx[i] = 0.02 + Math.random()/10; // set step variables
sty[i] = 0.7 + Math.random(); // set step variables
if (ns4up) { // set layers
if (i == 0) {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
document.write("top=\"15\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
} else {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
document.write("top=\"15\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
}
} else if (ie4up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
}
}
}
function snowNS() { // Netscape main animation function
for (i = 0; i < no; ++ i) { // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.layers["dot"+i].top = yp[i];
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowNS()", speed);
}
function snowIE() { // IE main animation function
for (i = 0; i < no; ++ i) { // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx[i] += stx[i];
document.all["dot"+i].style.pixelTop = yp[i];
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowIE()", speed);
}
if (ns4up) {
snowNS();
} else if (ie4up) {
snowIE();
}
// End -->
</script></html></body>
<?php
Du har fejl på anden sidste linie... /body skal stå før /html
Jeg aner ikke om det kan være grunden, men du kan da starte med at ændre det! Dit script skal IKKE stå inden i din php kode, men tjek at du ikke får sendt body tagget to gange.
Som det ser ud lige nu, har du body stående før din header, det burde også give fejl!
Hvis det stadig ikke virker, tror jeg grunden til fejlen ligger i kompatibliteten mellem dit javascript og din css!
Jeg aner ikke om det kan være grunden, men du kan da starte med at ændre det! Dit script skal IKKE stå inden i din php kode, men tjek at du ikke får sendt body tagget to gange.
Som det ser ud lige nu, har du body stående før din header, det burde også give fejl!
Hvis det stadig ikke virker, tror jeg grunden til fejlen ligger i kompatibliteten mellem dit javascript og din css!
Det var ikke det. Men jeg har funder ud af at når jeg gør det so, beskrevet i #2 så bliver resultatet sådan:
Så nu har jeg smidt det I en særskildt fil (snow.js), og atter engang virker det (næsten) I IE, men ikke I FF. Jeg brikker fat af det.
[edit]
Som jeg ser det, så er der 2x <html> og to gange <body>, det var derfor jeg ændrede det.
[/edit]
<html>
<body>
<SCRIPT LANGUAGE="JavaScript1.2">
...
</script>
</body>
</html><?xml version='1.0' encoding='iso-8859-1' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SyllableDK: News</title>
...
</td></tr></table></div><div style='text-align:center' class='smalltext'>Render time: 0.4392 second(s). </div></body>
</html>
Så nu har jeg smidt det I en særskildt fil (snow.js), og atter engang virker det (næsten) I IE, men ikke I FF. Jeg brikker fat af det.
[edit]
Som jeg ser det, så er der 2x <html> og to gange <body>, det var derfor jeg ændrede det.
[/edit]
du kan lægge det ind i en variabel med flg kode:
$jscript = <<<END
en masse jscript kode med
{ <?php ?> }
specialtegn
END;
og derefter udskrive variablen i din head blok.
$jscript = <<<END
en masse jscript kode med
{ <?php ?> }
specialtegn
END;
og derefter udskrive variablen i din head blok.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.