[AJAX] Httprequest direct vanaf HD werkt niet onder IE7

Pagina: 1
Acties:

  • Tead
  • Registratie: November 2001
  • Laatst online: 25-11 02:05
Ik zit met het volgende probleem.

Ik moet een Demo CD maken met wat content er op. Er wordt een webpagina weergegeven met een menutje en een aantal submenu's. In totaal komt dit op een pagina of 25 met content.

Omdat het niet op een webserver draait maar direct van de CD af kan ik niet gebruik maken van PHP of andere server side script taal.

Omdat er waarschijnlijk nog een aantal andere CD's gemaakt moeten worden met content wil ik het menu niet op 25 plaatsen moet aanpassen.

Nu heb ik wat moois in elkaar gezet dmv javascript & Http request. Ik heb de volgende code:


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var xmlHttp

function loadPage(){ 
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null){
        alert ("Uw browser ondersteunt geen AJAX.")
        return
    } 
    var url="pages/"+arguments[0]+".html"
    xmlHttp.onreadystatechange=function(){
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
            document.getElementById("main").innerHTML=xmlHttp.responseText 
        } 
    }
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}

function GetXmlHttpObject(){
var xmlHttp=null;
try{                xmlHttp=new XMLHttpRequest();   }
    catch (e){
        try{        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
        catch (e){  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    }
    return xmlHttp;
}


In me index.html wordt deze javascript file gewoon netjes ingeladen en ik roep deze functie aan door middel van onderstaande code.

HTML:
1
<a href='javascript:void(0)' onclick='loadPage("page1");'>link</a>


Dit alles werkt helemaal perfect in Firefox, Opera, Internet Explorer 6 en alle denkbare. Alleen niet onder Internet Explorer 7 :(

Hier krijg ik een balk in beeld dat er een script is tegengehouden. Als ik dit script toch wil toestaan gaat de balk wel maar werkt het nog steeds niet. Als ik dit hele zaakje ergens online zet werkt het dus wel onder Internet Explorer 7.

Waarschijnlijk komt dit omdat bestanden van de lokale computer wordt geopend. Maar waarom in IE7 niet en IE6 wel? En hoe kan ik er voor zorgen dat dit wel onder IE7 gaat werken zonder te veel aanpassingen in de instellingen?

  • ibmos2warp
  • Registratie: Januari 2007
  • Laatst online: 20-11-2023

ibmos2warp

Eval is Evil

Ik weet niet of je er wat aan hebt, maar misschien is dit wat info.
Ik zie ook dat je zelf wat hebt geschreven, probeer het eens met een al bestaande http request ding.

Ik weet alles van niks
Vind Excel ongelovelijk irritant.


  • dEUSdude
  • Registratie: Juni 2002
  • Niet online
Omdat je zegt dat je vanaf cd wilt showen, kun je best wel php gebruiken. Het heet Server2Go. Werkt uitstekend. Heb het ook gebruikt voor een landelijke voorstelling. Het is zelfs gratis, al is een kleine donatie wel op zijn plaats...

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Wat jij wil is met JavaScript bestanden uitlezen die op de harde schijf van de gebruiker staan. Het lijkt me dat je zelf wel inziet dat dat van uit security-oogpunt niet zo interessant is?

Een betere oplossing lijkt me een iframe, precies wat je wil en zonder javascript (die potentieel uitgeschakeld is in de browser).

If you can't beat them, try harder


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Waarom gebruik je in dit geval niet gewoon frames?

Intentionally left blank


  • Victor
  • Registratie: November 2003
  • Niet online
Is er geen HTTP server nodig om überhaupt HTTP requests te kunnen doen?

Het filesystem van je CD zal geen response geven d.m.v. HTTP ;)

  • remcotolsma
  • Registratie: December 2005
  • Laatst online: 09-10 21:36
Je zou ook de webpagina's kunnen ontwikkelen met PHP of andere server side scripttalen. En dan met HTTrack de website opslaan voor offline gebruik.

http://www.httrack.com/

Het leuke hiervan is dat zodra je linkt naar externe websites dat deze ook mee worden genomen en dat je die dan ook zonder internet verbinding kunt bekijken.

  • Tead
  • Registratie: November 2001
  • Laatst online: 25-11 02:05
Ik maak gebruik van Ajax omdat dit zou moeten kunnen. Vanwege beveiliging van de browsers kan het zijn dat de browser geen bestanden van de lokale hardeschijf/cd opent. Maar de paden die ik in mijn source gebruik zijn relatief en niet absoluut (file:///C:/WINDOWS/password.txt). Dus het bestand dat de pagina's opent staat ook lokaal. Daarom werkt het in elke browser op IE7 na, denk ik.

Gebruik van (i)Frames is natuurlijk ook mogelijk. Maar ik vroeg me juist af waarom Ajax niet werkt in IE7 als ik wel toesta dat het script uitgevoerd mag worden.

Met Server2Go en HTTrack ga ik eens spelen. Lijkt me wel handig.

Maar goed, vind het jammer dat Ajax niet werkt lokaal onder IE7. Iig bedankt voor jullie input :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Tead schreef op donderdag 29 maart 2007 @ 09:52:
Ik maak gebruik van Ajax omdat dit zou moeten kunnen.
Dat vind ik een rare redenatie. Meestal pas je een bepaalde techniek toe omdat dat de meest geschikte methode is, niet enkel 'omdat het zou moeten kunnen'.
Maar ik vroeg me juist af waarom Ajax niet werkt in IE7 als ik wel toesta dat het script uitgevoerd mag worden.
Waarschijnlijk omdat op het moment dat je het toestaat het script niet alsnog uitgevoerd wordt. De enige manier om het werkend te krijgen is denk ik het aanpassen van bepaalde security-settings.

Je zou nog kunnen proberen of het toevoegen van een Mark of the Web soelaas biedt. Persoonlijk vind ik de beslissing van MS om local content als meer onveilig te beschouwen dan online content ook een beetje vreemd, maar dat heeft vast ook te maken met het feit dat Active Scripting in IE meer omvat dan javascript alleen...

Intentionally left blank

Pagina: 1