[JS/AJAX] prototype laadt niet in IE7

Pagina: 1
Acties:

  • winkbrace
  • Registratie: Augustus 2008
  • Laatst online: 24-08 15:17
Beste mensen,

Ik heb een probleem, dat op het eerste gezicht eenvoudig te googelen lijkt. Wellicht zoek ik op de verkeerde termen, want ik heb niets zinnigs kunnen vinden.

Ik heb een verlanglijstjes site gemaakt om wat te experimenteren met AJAX en prototype. Dit werkt uitstekend in FF, maar niet in IE7. Met het toevoegen van wat alert()'s heb ik gevonden dat het bij het laden van prototype al mis lijkt te gaan.
Ik gebruik prototype versie 1.6.0.3.

Hierbij het begin van mijn code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Verlanglijstjes</title>
    <link rel="stylesheet" type="text/css" href="verlang.css" />
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" language="JavaScript">
        alert(1);  // ik krijg geen alert scherm
        // hier staat de code om dingen te doen
    </script>
</head>

  • Noork
  • Registratie: Juni 2001
  • Niet online
Is het niet alert('1'); ?

Verwijderd

Nee, alert cast z'n argument automatisch naar string.

Wat dit probleem betreft zie ik geen gekke dingen in deze HTML behalve language="JavaScript" (is deprecated).

Kun je iets meer informatie geven?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31

Bosmonster

*zucht*

Heb je code hierboven geprobeerd met prototype 1603 en IE7, maar werkt prima.

Wat heb je verder in je pagina, en waar heb je je prototype vandaan? Heb je hem gepacked bijvoorbeeld?

Edit: Even gespeeld met JSMin en Packer, maar met beide compressies blijft het gewoon werken. Dus of je hebt een vreemde prototype ergens vandaan gehaald of je hebt gewoon iets anders geks in je pagina (of je IE7 is vernaggeld).

[ Voor 38% gewijzigd door Bosmonster op 27-11-2008 14:04 ]


  • winkbrace
  • Registratie: Augustus 2008
  • Laatst online: 24-08 15:17
Okee, bedankt voor de reacties.

ik zal prototype opnieuw downloaden. Kijken of het helpt.
Blijft vreemd dat het in FF3 gewoon wel goed gaat =/

  • winkbrace
  • Registratie: Augustus 2008
  • Laatst online: 24-08 15:17
Ik zie net dat ik die vereenvoudigde html zelf ook goed kan openen. Dus het probleem zit ergens anders.

Door middel van commenten tot het goed gaat proberen fouten te elimineren. Op een gegeven moment werkte mijn test bestand wel, maar na dezelfde aanpassing doorgevoerd te hebben in mijn echte document heb ik nog hetzelfde probleem.

Wat ik in ieder geval heb ontdekt is dat het niet aan prototype ligt, ondanks eerdere vermoeden. Dus mijn titel is behoorlijk onjuist nu.

Voor het gemak heb ik de site online gezet: www.famderuiter.com/got/got.php (het is een bewerkte kopie, dus site werkt mysql-technisch niet helemaal zoals het moet, maar het gaat om het js gedeelte)
Als je daar inlogt als een van de mensen (allemaal wachtwoord test) zie je dat je een regel moet kunnen toevoegen voor een nieuw verlangen door op het groene plusje te klikken. Werkt wel in FF, niet in IE7.

Dit is de code die dan uitgevoerd moet worden. Ja, ik weet dat ik nog niet gebruik maak van alle prototype mogelijkheden. Eerst de boel maar aan de praat krijgen daarna kijken hoe het prototype kan. ;)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        // naam: tbody id, padd: php-generated padding-left style
        function voegtoe(naam, padd) {

            // voeg een rij toe
            var row = document.createElement("TR");
            row.id = 'row'+next_id;
            
            // eerste cell
            var td1 = document.createElement("TD");
            td1.addClassName("item");
            td1.id = next_id;
            td1.setStyle(padd);
            
            var inp = document.createElement('input');
            inp.type = "text";
            inp.name = "item"+next_id;
            inp.value = "";
            inp.setStyle("width: 500px;");
            
            td1.appendChild(inp);

            // tweede cell
            var td2 = document.createElement("TD");
            td2.setAttribute('onClick','del('+"'"+naam+"', "+"'"+next_id+"'"+')'); 
            
            var img = document.createElement("IMG");
            img.src = "icon_delete.gif";
            img.alt = "verwijderen";
            img.height = 16;
            
            td2.appendChild(img);
            
            // plak alles aan elkaar en de table body
            row.appendChild(td1);
            row.appendChild(td2);
            alert(row.innerHTML);
            $(naam).appendChild(row);

            $('hidden'+naam).innerHTML += '<input type="hidden" name="insert'+next_id+'" value="'+next_id+'" />';  // geef hidden insert info
            showBewaar(naam);
            next_id++;
        }


en dit is de HTML

HTML:
1
2
3
    <tfoot>
        <tr><td style="padding-left: 30px;"></td><td class="del" onClick="voegtoe('mens3', 'padding-left: 30px;')"><img src="icon_add.png" alt="toevoegen" height="16" /></td></tr>
    </tfoot>

  • Noork
  • Registratie: Juni 2001
  • Niet online
Kun je niet gewoon zelf de boel zelf debuggen. Regels commenten, kijken waar het fout gaat etc... Of zeg ik nu wat geks.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31

Bosmonster

*zucht*

Daar kom je nu mee, een bak code die in de pagina staat? Als je dat gelijk had gezegd had me dat 10 minuten testen gescheeld.. Redelijk logisch dat het daaraan ligt..

Ik raad je overigens toch aan het direct in prototype te doen. Dan kan het waarschijnlijk in 3 regels ipv 30, dus scheelt je een hoop werk en debuggen.

edit: ownee het is prototype, dan kan het waarschijnlijk in 28 regels ipv 30, maar dan is al het xbrower werk al voor je gedaan, dus scheelt je alsnog een hoop debuggen.

[ Voor 52% gewijzigd door Bosmonster op 27-11-2008 15:44 ]


  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 20:57

Sebazzz

3dp

Vergeet niet dat tbody, thead, en tfoot niet ondersteunt wordt door IE (5). Dus laat die tags eventjes weg, and try again ;)

[ Voor 26% gewijzigd door Sebazzz op 27-11-2008 20:17 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Verwijderd

Da's klets, IE gaat alleen niet netjes om met het overflow model ervan

Acties:
  • 0 Henk 'm!

  • winkbrace
  • Registratie: Augustus 2008
  • Laatst online: 24-08 15:17
Noork schreef op donderdag 27 november 2008 @ 15:36:
Kun je niet gewoon zelf de boel zelf debuggen. Regels commenten, kijken waar het fout gaat etc... Of zeg ik nu wat geks.
Ik hoopte dat iemand de code zou zien en direct kon aanwijzen waar het 'em in zit.
Bosmonster schreef op donderdag 27 november 2008 @ 15:40:
Daar kom je nu mee, een bak code die in de pagina staat? Als je dat gelijk had gezegd had me dat 10 minuten testen gescheeld.. Redelijk logisch dat het daaraan ligt..

Ik raad je overigens toch aan het direct in prototype te doen. Dan kan het waarschijnlijk in 3 regels ipv 30, dus scheelt je een hoop werk en debuggen.

edit: ownee het is prototype, dan kan het waarschijnlijk in 28 regels ipv 30, maar dan is al het xbrower werk al voor je gedaan, dus scheelt je alsnog een hoop debuggen.
Toch bedankt voor je 10 minuten testen. Ik was er van overtuigd dat het daar aan lag. Beginnersfouten, he.
Ik zal vanavond nog eens verder stoeien met prototype om te kijken of ik het op die manier in IE7 aan de gang kan krijgen.
Pagina: 1