Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

controleren of een url werkt (javascript)

Error404
9 antwoorden
  • is het mogelijk om met javascript te controleren of een bepaalde url bestaat?
    als de url bestaat zou het script hem moeten openen, bestaat ie niet zou ie automatisch naar een andere toe moeten.
    Ik heb al op verschillende plaatsen gekeken, maar het enige wat ik vond was een scriptje om te kijken of een bepaald plaatje bestaat en ik heb niet echt een idee hoe ik die evt. kan ombouwen.
    kan iemand mij helpen?

    [b:3e9e2d87a7]ok, het hierboven beschreven probleem is al opgelost, maar die oplossing zorgde weer voor een ander (klein) probleempje. zie hier.[/b:3e9e2d87a7]
  • [code:1:477cbc29eb]
    <html>
    <head>
    <title>Test XMLHttpRequest</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <script type="text/javascript">
    var xmlhttp=false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
    xmlhttp = false;
    }
    }
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
    }
    if (xmlhttp) {
    document.write('<p class="example"><a href="#" onclick="example('http://www.google.nl');return false;">Goed</a>, <a href="#" onclick="example('/http://www.ik.besta.niet-echt.hoor');return false;">Fout</a> </p>')
    }
    function example(url) {
    xmlhttp.open("HEAD", url,true);
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4) {
    if (xmlhttp.status==200) { alert("Dit is een goed goede link"); location.href=url; }
    else { alert("Foute link de status is "+xmlhttp.status); location.href="http://forum.computertotaal.nl/phpBB/viewtopic.php?t=137256"; }
    }
    }
    xmlhttp.send(null)
    }
    </script>
    </body>
    </html>
    [/code:1:477cbc29eb]

    Damn i'm good :)
  • dankjewel :)
    heb er alleen wel een probleem mee, ik begrijp hem namelijk niet helemaal en hij werkt niet in firefox.

    wat ik precies wil bereiken is het volgende:

    ik heb een pagina met een inline frame. In dit frame wordt afhankelijk van het jaar en de week een bepaalde url geladen. Iedere week veranderd deze url. Nu kan het voorkomen dat die url nog niet bestaat. Het script zou in dat geval moeten doorlinken naar de pagina van vorige week. De vraag is nu dus alleen: hoe kan ik dat voor elkaar krijgen?

    dit is de code die ik tot nu gebruik:

    [code:1:a0a4ada27c]<!– dit script bepaalt het weeknummer + jaartal –>
    function weekNo() {
    var totalDays = 0;
    now = new Date();
    years=now.getFullYear();
    var days = new Array(12); // Array to hold the total days in a month
    days[0] = 31;
    days[1] = 29;
    days[2] = 30;
    days[3] = 30;
    days[4] = 31;
    days[5] = 30;
    days[6] = 31;
    days[7] = 31;
    days[8] = 30;
    days[9] = 31;
    days[10] = 30;
    days[11] = 31;

    // Check to see if this is a leap year
    if (Math.round(now.getYear()/4) == now.getYear()/4) {
    days[1] = 29
    }else{
    days[1] = 28
    }

    // If this is January no need for any fancy calculation otherwise figure out the
    // total number of days to date and then determine what week
    if (now.getMonth() == 0) {
    totalDays = totalDays + now.getDate();
    }else{
    var curMonth = now.getMonth();
    for (var count = 1; count <= curMonth; count++) {
    totalDays = totalDays + days[count + 1];
    }
    totalDays = totalDays + now.getDate();
    }
    // Here is the modification: considering when start the 1st week of year.
    // Originally was only: var week = Math.round(totalDays/7)
    // Check if browser is "Microsoft Internet Explorer" or not and apply the right var
    var agt=navigator.userAgent.toLowerCase();
    if ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)) {
    var firstday=new Date("01/01/"+String(now.getYear())).getDay();
    }
    else {
    var firstday=new Date("01/01/"+String(1900+now.getYear())).getDay();
    }
    var diff=7;
    var week = Math.round((totalDays+diff)/7); return week;
    }
    // –>

    <!– script schrijft iframe met pagina van huidige week –>
    document.write('<iframe src="' +years+ '/week' +weekNo()+'.htm"' + ' name="hitlist"' + ' frameborder="1"' + ' width="425"' + ' height="313">' + '</iframe>')[/code:1:a0a4ada27c]
  • Heb je geen php of perl op je server? daarmee kan je het veel eleganter oplossen (en ben je ook niet afhankelijk van de browser van de client)
  • [quote:69261c6820="Error404"]Damn i'm good :)[/quote:69261c6820]
    Alsof je die code helemaal zelf geschreven hebt. 8) :wink:
  • ok mensen ik heb inmiddels een oplossing gevonden. Ik gebruik nu een code die bij het laden van de pagina de bezoeker automatisch doorstuurt naar de juiste url.

    [code:1:cf1d4d89dd]<body onLoad="document.location.href=urla()" onError="document.location.href=url2()">[/code:1:cf1d4d89dd]

    dit betekent dus dat als de pagina geopend wordt je automatisch word doorgestuurd naar 'urla'. Bestaat 'urla' niet, dan opent ie automatisch 'url2'.

    nu is er alleen nog 1 probleempje…

    In mozilla geeft ie zo'n waarschuwingsschermpje met ok-knop die meldt dat de pagina niet is gevonden, als de browser 'urla' niet kan vinden.
    Is er een manier om die uit te schakelen?
  • new ActiveXObject("

    Ja, dat is dus alleen voor internet explorer. Lekker handig.
  • [quote:c7f3cdc995]new ActiveXObject("

    Ja, dat is dus alleen voor internet explorer. Lekker handig.
    [/quote:c7f3cdc995]

    Misschien toch wat beter lezen de volgende keer. Onderstaande regel is gericht op Mozilla.

    [code:1:c7f3cdc995]
    xmlhttp = new XMLHttpRequest();
    [/code:1:c7f3cdc995]
  • thanks, maar waar moet ik dat regeltje precies neerzetten?

    edit: ben er al achter 8)

    heb dit scriptje in de body geplaatst, en het werkte.
    [code:1:d0ba393af2]<script language="javascript" type="text/javascript">
    document.write(xmlhttp = new XMLHttpRequest();)
    </script>[/code:1:d0ba393af2]

    bedankt voor het meedenken allemaal :)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.