abonnement Unibet Coolblue Bitvavo
pi_44343806


De (voorlopige) OP van de [Javascript] voor dummies reeks.
Hier kan je alle vragen stellen over Javascript en alles wat er mee te maken heeft.

Heb je een probleem, post dan ook even de code waar het probleem zit Zo kunnen we je beter proberen te helpen.

Vorige delen:
[Javascript] voor dummies - Deel 1
[Javascript] voor dummies - Deel 2
[Javascript] voor dummies - deel 3
[Javascript] voor dummies - deel 4
{hier de link van het vorige deel}

Handige links:
Quircksmode Javascript
Javascript Cheat Sheet
Mis je een link? Geef even een gil in het topic

Tutorials:
W3Schools Javascript
W3Schools AJAX

Laatste posts uit het vorige topic:
quote:
Op maandag 11 december 2006 23:39 schreef Litpho het volgende:

[..]

Geef je aan de functie alleen de buttonnaam mee, of het buttonobject (evt. opgehaald met iets als document.getElementById)?
quote:
Op maandag 11 december 2006 23:41 schreef mschol het volgende:

[..]

alleen button naam m.b.v. this.name
Deze OP: http://wiki.fok.nl/index.php/OP/Javascript
pi_44343887
Ah. Je probeert een property (disabled) te veranderen van een buttonobject maar in plaats daarvan zet je een property (disabled) van een stringobject.

Kijk of je in je HTML-code dezelfde buttonnaam ook als id kan opnemen en neem in je javascript de volgende code op:
1
2
3
4
5
6
7
function AddFile(place,file,button)
{
var btn = document.getElementById(button);
   newWindow = window.open('add.php?path='+place+'&file='+file,"add_file","status=0,menubar=0,height=250,width=100,top=60px,left=100px");
   btn.disabled=true;
   newWindow.focus();
}
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_44343992
quote:
Op maandag 11 december 2006 23:46 schreef Litpho het volgende:
Ah. Je probeert een property (disabled) te veranderen van een buttonobject maar in plaats daarvan zet je een property (disabled) van een stringobject.

Kijk of je in je HTML-code dezelfde buttonnaam ook als id kan opnemen en neem in je javascript de volgende code op:
[ code verwijderd ]
ik loop altijd met dit verschil te vechten, en nog steeds vergeet ik het
maar dan wordt me ID 'NULL' ik ga zelf nog eff vechten, ben in iedergeval weer een eind verder

wel this.name naar this.id veranderen

anyways et werkt

[ Bericht 14% gewijzigd door mschol op 11-12-2006 23:58:22 ]
pi_44344406
Waarom de name of id doorgeven als je de button zelf al kent?

1
2
3
function test(button) {
   button.disabled = true;
}


1<input type="button" onclick="test(this);return false;" value="Test">


En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_44344482
quote:
Op dinsdag 12 december 2006 00:02 schreef SuperRembo het volgende:
En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
Er was een reden dat ik erbij zette dat je de naam ook als id-waarde moest opnemen in je HTML .

Het komt nog wel eens voor dat ik wel een naam/id heb (bijv. teruggegeven vanuit een AJAX-callback) maar niet een object. Anders kan je inderdaad net zo goed het object meegeven.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_44344507
quote:
Op dinsdag 12 december 2006 00:02 schreef SuperRembo het volgende:
Waarom de name of id doorgeven als je de button zelf al kent?
[ code verwijderd ]


[ code verwijderd ]

En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
name doorgeven werkt ook niet, id doorgeven daarin tegen werkt vlekkeloos..
het kan vast beter maar aangezien een een eigen brouwseltje is dat op een lokale webserver draait waar nooit iemand bij kan komen behalve ikzelf hoeft de code niet geoptimalizeerd te worden
thnx for de input overigens
pi_44348052
tvp voor de toekomst
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_44867927
Ik zit weer eens te stoeien met IE, maar ik kom er niet uit. IE kan (zoals wellicht bekend) het niet aan dat je een input element nog aanpast, nu had ik daar een workaround voor gevonden, maar ik krijg het niet aan de praat.

Het gaat om de volgende twee functies:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
function createUpload(numberOfElements, objectId){
  var element = document.getElementById(objectId);
  
  for (var x = 1; element.childNodes.length > 0; x++){
    element.removeChild(element.firstChild);
  }
  
  for(var i = 1; i <= numberOfElements; i++){
    createNewElement(objectId, "", "input", {type: "file", name: "uploadFile[]"}, "");
  }
}

function createNewElement(parent, beforeWhat, name, attrs, text) {
    var parent                                    =   document.getElementById(parent);
    try { 
      /*
       IE fix for input elements
      */
      if (attrs){
        var attributes                            =   "<" + name +" ";
        for (key in attrs) {
          attributes                              +=  key +"=""+ attrs[key] +"" ";
        }
        attributes                                +=  ">";
      }
      
      var e                                       =   document.createElement(attributes);
    } 
    catch (element) {
    }
    
    if (!e || e.nodeName != type.toUpperCase()) {
      var e                                       =   document.createElement(name);
      
      if (attrs) {
        for (key in attrs) {
          switch(key){
            case "class":
              e.className                             =   attrs[key];
            break;
            
            case "id":
              e.id                                    =   attrs[key];
            break;
            
            case "name":
            break;
            
            default:
              e.setAttribute(key, attrs[key]);
          } 
        }
      }
    }
  
  
  if (text) {
    e.appendChild(document.createTextNode(text));
  }
  
  if(beforeWhat != ""){
    var beforeWhat                                =   document.getElementById(beforeWhat);
    parent.insertBefore(e, beforeWhat);
  }
  else{
    parent.appendChild(e);
  }
}


Hoe krijg ik het aan de praat in IE?
pi_44875150
Hier heb je lopen klooten met quotjes:
1          attributes                              +=  key +"=""+ attrs[key] +"" ";


Hier bestaat 'type' niet, zal waarschijnlijk iets met attrs['type'] moeten zijn
1    if (!e || e.nodeName != type.toUpperCase()) {



Beetje lomp om zo'n heel blok in een try/catch te zetten terwijl je makkelijk kan bepalen of je met IE te maken hebt. Dan hoeven andere browsers niet onnodig die code uit te voeren die toch niet gaat werken.

En wat een ranzige uitlijning van je code
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_44882835
quote:
Op zaterdag 30 december 2006 23:38 schreef SuperRembo het volgende:
Hier heb je lopen klooten met quotjes:
[ code verwijderd ]
dat was FOK!, niet ik , in de paste stond het goed
quote:
Hier bestaat 'type' niet, zal waarschijnlijk iets met attrs['type'] moeten zijn
[ code verwijderd ]
dat zal hem wellicht zijn idd .
quote:
Beetje lomp om zo'n heel blok in een try/catch te zetten terwijl je makkelijk kan bepalen of je met IE te maken hebt. Dan hoeven andere browsers niet onnodig die code uit te voeren die toch niet gaat werken.
Persoonlijk vind ik browsersniffing nog ranziger en onderhoudsonvriendelijker .
quote:
En wat een ranzige uitlijning van je code
persoonlijke smaak
pi_44887190
quote:
Op zondag 31 december 2006 10:03 schreef rickmans het volgende:
persoonlijke smaak
Leuke link . Dan nog zou ikzelf de assignment targets niet allemaal ergens op ver rechts uitlijnen, maar zoals je zegt, dat is persoonlijke smaak (en niets wat een goede code formatter niet ongedaan kan maken ).
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_44889040
quote:
Op zaterdag 30 december 2006 23:38 schreef SuperRembo het volgende:
En wat een ranzige uitlijning van je code
vind ik ook maar das zoals eerder gezegd persoonlijke smaak,
ik houd van veel ruimt zodat het snel te lezen is (voor mij iig)
pi_44890545
En wat is dan bijvoorbeeld een goede code formatter voor javascript? En dan liefst een die niet op z'n bek gaat bij een flinke hoeveelheid code.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_44893639
het vragen van de grootte van een venster, hoe doe ik dat?
ik dacht altijd via window.width of window.height
maar ik lees iets over innerwidth en outerwidth
  Moderator zondag 31 december 2006 @ 16:06:10 #15
1424 crew  Jimbo
Gråtrunka
pi_44893682
lol ik kijk net in de topic en ik denk wtf doet dit in ONZ..... zit ik in DIG
Op donderdag 20 augustus 2020 17:36 schreef Notorious_Roy het volgende:
Naast alle onzin die je uitkraamt heb je af en toe ook gewoon heel verstandige posts.
Op dinsdag 10 augustus 2021 16:32 schreef yvonne het volgende:
@:Jimbo voor mod, yeah *O*
pi_44894041
De property's voor de breedte en hoogte van een window hangen af van de browser. Bij IE hangt het er ook nog van af of het een normaal window of een modal dialog is.

Zie bijv. http://www.quirksmode.org/js/winprop.html
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_45241507
1
2
3
4
5
6
7
8
9
10
11
12
function styleAbbr() {
   var oldBodyText, newBodyText, reg;

   oldBodyText = document.body.innerHTML;
   reg = /<abbr([^>]*)>([^<]*)</abbr>/g;
   newBodyText = oldBodyText.replace(reg, '<abbr $1><span class="abbr" $1>$2</span></abbr>');
   document.body.innerHTML = newBodyText;
}

window.onload = function(){
   styleAbbr()
}


Ik heb dit script (gekregen van iemand) Om in Internet Explorer er voor te zorgen dat de abbr tag toch 'werkt'
Maar in Internet Explorer werkt het juist niet. In Firefox wel. Maar daar hoeft het niet want de abbr tag werkt daar gewoon.

Dus, wat is er fout aan dat het niet in IE werkt?
pi_45242414
Misschien een idee om de slash in je regular expression te escapen met een backslash?
1   reg = /<abbr([^>]>([^<]<\/abbr>/g;
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_45243618
Staat 'ie ook, maar Fok! neemt em niet over.

Hier staat een online voorbeeld.
http://lab.danielpunt.nl/abbr.html
pi_45243967
Om de een of andere reden haalt hij <p><abbr title="Cascading Style Sheets">CSS</abbr></p> op met de elementen in uppercase. Voeg ignore case toe aan je regexp en het werkt bij mij in IE.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_45244109
uhm, ik ben niet zo goed in JavaScript. Maar ik ga het proberen. Zo leer ik er ook nog eens van
Dank je wel
pi_45246392
Lijkt me geen lekker scriptje om op iets grotere pagina's te gebruiken. IE zal de pagina op deze manier altijd 2x moeten opbouwen. Helemaal lullig in IE7, want die ondersteunt de abbr tag wel.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_45246955
Het gaat ook niet gebruikt worden op grote pagina's.
En kan ik niet filteren op lagere versie's dan IE 6?

Anders moet ik het in PHP gaan maken.
pi_45253231
Je kunt 't met conditional comments verbergen voor browser die 't wel ondersteunen.

1
2
3
4
5
6
7
8
<!--[if IE lt 7]>
<script type="text/javascript">
window.onload = function() {
   var b = document.body;
   b.innerHTML = b.innerHTML.replace(/<abbr([^>]*)>([^<]*)<\/abbr>/gi, '<abbr $1><span class=\"abbr\" $1>$2</span></abbr>');
}
</script>
<![endif]-->


(niet echt getest)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_45401554
Oh stom, niet aan gedacht. Er staat 1 klein foutje in jou code:
1
2
3
<!-- if lt IE 7]>
//code
<![endif]-->

Zo werkt het wel :) Dank!
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')