Volledige versie bekijken : Javascript, melding bovenaan je scherm



MabadosS
22 December 2006, 20:58
Beste,

Ik kreeg vandaag een mail van Google dat ze m'n site uit de google index hebben verwijderd omdat ik gebruik maak van een redirect script.

Ik gebruikte op m'n site volgend script:


<SCRIPT LANGUAGE="JavaScript">
function redirectPage() {
var url640x480 = "webindex.html"; //plaats URL hier
var url800x600 = "webindex_low.html"; //plaats URL hier
var url1024x768 = "webindex_medium.html"; //plaats URL hier
if ((screen.width == 640) && (screen.height == 480))
window.location.href= url640x480;
else if ((screen.width == 800) && (screen.height == 600))
window.location.href= url800x600;
else if ((screen.width == 1024) && (screen.height == 768))
window.location.href= url1024x768;
else window.location.href= url1024x768;
}
// -->
</SCRIPT>

Mensen werden dus volgens hun schermresolutie naar de juist versie van de site gestuurd.
Volgens google is dat in strijd met hun regels, waardoor ze me verwijderen uit de index.
Helaas komen 90 % van mijn bezoekers via google, dus moet ik noodgedwongen m'n site aanpassen.

Wat ik nu wil doen en volgens mij wel mag voor Google, maar waar ik dus niet uit raak:

Iedereen komt standaard op de site voor resolutie 1024*768.
Maar ik wil in die pagina een javascriptje verwerken die indien men (de bezoeker) een lagere resolutie heeft een boodschap bovenaan het scherm zet.
Bvb: U surft met een te lage resolutie, klik hier om naar de aangepaste site te gaan voor uw resolutie.

Zel heb ik geen kaas gegeten van javascript, maar ik deed een poging om bovenstaande script wat aan te passen, maar dat heeft dus niet het resultaat.
Misschien kan iemand mij even helpen, want ik denk dat dit voor kenners niet zo moeilijk te realiseren is.

Alvast bedankt voor de mogelijke hulp!

Mijn (mislukte) poging:


<SCRIPT LANGUAGE="JavaScript">
if ((screen.width == 640) && (screen.height == 480))
document.write("<p>U gebruikt een te lage resolutie om bla bla bla</p>");
else if ((screen.width == 800) && (screen.height == 600))
document.write("<p>U gebruikt een te lage resolutie om bla bla bla</p>");
else if ((screen.width == 1024) && (screen.height == 768))
document.write("<p>Toon tekst ...</p>");
else window.location.href= url640x480;
}
// -->
</SCRIPT>

O ja, de site waarom het gaat is www.jeugdwerker.be (http://www.jeugdwerker.be)

Voorlopig kom je nu dus gewoon op de site, die enkel is geschikt voor 1024*768 en hoger.

MabadosS
22 December 2006, 21:24
Via een ander forum kwam volgende hulp uit de bus.

Helaas werkt het niet, maar misschien ziet iemand de fout in volgend script.


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Website</title>


</head>
<body>

<div id="boodschap">
</div>
<script language="JavaScript" type="JavaScript">
<!--
if ((screen.width == 1024) && (screen.height == 768))
{
document.getElementById("boodschap").innerHTML = "<h1>Uw resolutie is NIET GESCHIKT, klik hier !</h1>"
}
document.getElementById("boodschap").innerHTML = "<h1>Test !</h1>"
//-->
</script>

<big style="font-family: Trebuchet MS;">Dit is een website
! bla bla</big>
</body>
</html>

Jelle
22 December 2006, 21:43
Een heel eenvoudig antwoord eigenlijk :)

Verander

<script language="JavaScript" type="JavaScript">
naar

<script type="text/javascript">

Het language attribuut voor script tags is door het W3C afgekeurd. Doordat in die test een doctype bovenaan staat neemt de browser de W3C standaarden ook wat serieus (al is het wel geen lang doctype dat strenger is). En voor het type attribuut is de tekst normaal niet javascript, maar text/javascript

MabadosS
22 December 2006, 21:56
We zijn al een stapje verder, maar het script doet nog niet geheel wat het zou moeten doen.
Alvast bedankt voor je hulp.

Nu krijg ik bij het openen van de pagina te zien



Test !

Dit is een website ! bla bla bla


Maar ik krijg nog steeds bij een resolutie van 1024*768 niet de extra vermelding te zien (Uw resolutie is NIET GESCHIKT, klik hier !)

Ik heb voor het gemak, het script online gezet op www.jeugdwerker.be/opslag/redirect.html (http://www.jeugdwerker.be/opslag/redirect.html)

Alvast bedankt aan wie dit nog even wil bekijken.

Jelle
22 December 2006, 22:22
Ik denk dat deze moet werken:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Website</title>


</head>
<body>

<div id="boodschap">
</div>
<script type="text/javascript">
<!--
if ((screen.width == 1024) && (screen.height == 768))
document.getElementById("boodschap").innerHTML = "<h1>Uw resolutie is NIET GESCHIKT, klik hier !</h1>"
else
document.getElementById("boodschap").innerHTML = "<h1>Test !</h1>"
//-->
</script>



<big style="font-family: Trebuchet MS;">Dit is een website ! bla bla</big>
</body>
</html>

Geen haakjes gebruiken dus en een else plaatsen. Uiteraard krijg je hierbij de boodschap dat het niet geschikt is op een 1024 resolutie omdat dat zo in het if statement staat. Dat moet dus gecorrigeerd worden uiteraard.

MabadosS
22 December 2006, 22:33
Geen haakjes gebruiken dus en een else plaatsen. Uiteraard krijg je hierbij de boodschap dat het niet geschikt is op een 1024 resolutie omdat dat zo in het if statement staat. Dat moet dus gecorrigeerd worden uiteraard.

Heel erg bedankt Jelle, nu werkt het perfect.

Ik zal dit morgen toepassen in m'n website.

Jelle
22 December 2006, 22:43
Ik zag nog iets vreemds in je home.html, in de HTML-broncode vind je er een stukje PHP:

<?php include("random gallery.php"); ?>
hoort er niet echt thuis, je moet je syntax dus eens nakijken daar.

MabadosS
22 December 2006, 22:50
Ik zag nog iets vreemds in je home.html, in de HTML-broncode vind je er een stukje PHP:

<?php include("random gallery.php"); ?>
hoort er niet echt thuis, je moet je syntax dus eens nakijken daar.

Inderdaad, bedankt.

Heb daar een tijdje terug een random gallery gehad, maar weer afgevoerd.

Blijkbaar een stukje code vergeten uit te halen.

MabadosS
23 December 2006, 01:56
Toch nog een vraagje:

Ik zou graag in de tekst "<h1>Uw resolutie is NIET GESCHIKT, klik hier !</h1>" een url plaatsen, maar dat lukte niet met gewone html ( <a> </a> )

Is het mogelijk om in die tekst een aanklikbare link te zetten?
Moet dit in javascript met een andere tag dan da <a> tag?

Jelle
23 December 2006, 02:22
Dat komt omdat je dit waarschijnlijk zal doen:

document.getElementById("boodschap").innerHTML = "<h1>Uw resolutie is <a href="www.minatica.be">NIET GESCHIKT</a>, klik hier !</h1>"
Het probleem daarbij is dat de hele HTML tekst van de Javascript variabele al in dubbele aanhalingstekens staat. Het dubbele aanhalingsteken na het eerste wordt dus als sluiting van het eerste aanzien, net zoals in PHP.

De oplossing is ook dezelfde als in PHP: backslashes:

document.getElementById("boodschap").innerHTML = "<h1>Uw resolutie is <a href=\"www.minatica.be\">NIET GESCHIKT</a>, klik hier !</h1>"

Of enkele aanhalingstekens gebruiken:

document.getElementById("boodschap").innerHTML = "<h1>Uw resolutie is <a href='www.minatica.be'>NIET GESCHIKT</a>, klik hier !</h1>"

MabadosS
23 December 2006, 20:24
Bedankt, alles werkt nu naar behoren en ik heb het bij deze ook praktisch toegepast op de site.

Heb het script ook nog wat uitgebreid.


<div id="boodschap">
</div><br>
<script type="text/javascript">
<!--
if ((screen.width == 800) && (screen.height == 600))
document.getElementById("boodschap").innerHTML = "<h2><a target='_self' href='index_low.html'>Ga Door naar de website</a></h2>"
else if ((screen.width == 1024) && (screen.height == 768))
document.getElementById("boodschap").innerHTML = "<h2><a target='_self' href='index_medium.html'>Ga Door naar de website</a></h2>"
else
document.getElementById("boodschap").innerHTML = "<h2><a target='_self' href='index_high.html'>Ga Door naar de website</a></h2>"
//-->
</script>