Toon posts:

[JS] Functie bestaat niet, dynamisch toevoegen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben momenteel bezig met het opzetten van een framework voor een behoorlijk grote applicatie.

Wat ik wil bereiken is dat ik bij het toevoegen van additionele modules in de applicaties geen omkijken meer heb naar shared javascripts welke in de module aanwezig moeten zijn zoals het draggen van een tree control over frames. Zodoende wil ik ook het aantal JS fouten en de ontwikkeltijd beperken.

Aangezien deze modules worden geladen in een iframe kan ik vanuit zijn parent diverse acties op het iframe document uitvoeren.

Onderstaand voorbeeld geeft een beetje weer wat ik probeer te bereiken. Het voorbeeld werkt, maar ik ben benieuwd op welke manier ik complete functies kan gaan toevoegen. Eigenlijk wil ik ze compleet via attachEvent gaan meegeven. Een andere optie is het plaatsen van de JS in een XML file, en deze via XMLHttp.ResponseText meegeven via attachEvent en vervolgens onthefly schrijven.

Waar nu de alert staat, wil ik dus complete JS functions gaan meegeven. Dwz JS functions van pakweg 50 regels.

Heb ik nog veel opties over :?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
<script>
function CheckForFramework(){
if (test.functionname){
    window.status = 'functie bestaat';
}else{
    window.status = 'functie is toegevoegd';
    test.document.body.attachEvent('onclick',function(){alert('ja');});
    }
}
window.onload = CheckForFramework;
</script>
</head>

<body>
<iframe name="test" src="leeg.html" height="50%" width="50%"></iframe></td>


</body>
</html>

[ Voor 12% gewijzigd door Verwijderd op 15-01-2003 22:00 ]


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function getProperties(obj) {
    var res = "";
    for(var i in obj) {
        res += i +' \t-  ';
        if(typeof obj[i] == 'function') { 
            res += '[function]';
        } else {
            res += obj[i];
        }   res += '\n';
    }   alert(res);
}
                                                       // © Beehive, Clay


succes :Y)

[ Voor 23% gewijzigd door SchizoDuckie op 16-01-2003 00:06 ]

Stop uploading passwords to Github!


Verwijderd

Topicstarter
:? .. :D dat is totaal iets anders meneer Duck :)

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Verwijderd schreef op 16 January 2003 @ 00:14:
:? .. :D dat is totaal iets anders meneer Duck :)
kijk ff naar dit regeltje ;)

JavaScript:
1
if(typeof obj[i] == 'function') {

Stop uploading passwords to Github!


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

erm...ik denk dat stokkie daar wel zelf achter was gekomen, dus no need to post code from other peepz ;)

maar erm..krijg je nu niet dat je complete code door een eval heen moet gaan trekken? want het voorbeeldje van die alert gaat wel werken, maar kbedenk me dat je volgens mij wel parse errors gaat krijgen als je wat meer ingewikkelde functies gaat parsen ( wat about parameters, en if/else, of switch statements, etc )

is het echt nodig om totaal dynamische functies mee te geven? anders zou je net zo goed alleen een reference mee kunnen geven, en die alleen dynamisch detachen/attachen, en dat werkt wel goed, aangezien ik dat vaak genoeg zelf toepas.

heb je misschien wat meer info wat je nu echt van plan bent, wat uitgebreidere voorbeeldcode? :)

"You're only as good, as what you did last week."


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Wat ik wil bereiken is dat ik bij het toevoegen van additionele modules in de applicaties geen omkijken meer heb naar shared javascripts welke in de module aanwezig moeten zijn zoals het draggen van een tree control over frames. Zodoende wil ik ook het aantal JS fouten en de ontwikkeltijd beperken.
Klinkt als een half OS in javascript :? :D is het dan niet handig een centrale "controller" in te stellen, waar modules dingen aan vragen in plaats van dat ze zelf vanalles gaan doen? zo komt alles op een cetraal punt uit, en kan de contoller bijvoorbeeld zelf modules toevoegen (script dynamisch includen oid) doordat je hem gewoon vertelt bij welk request van module x welk script y hoort.

[edit]

en dat dan in een OO omgeving he. dan heb je denk ik ook geen behoefte aan zomaar losse functies van 50 regels on the fly schrijven. Je includet gewoon de module die nodig is.

[ Voor 13% gewijzigd door Clay op 16-01-2003 11:58 ]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin

Pagina: 1