[js] includen in een javascript

Pagina: 1
Acties:

  • Haso2000
  • Registratie: Juni 2002
  • Laatst online: 27-12-2025
Het gaat om een flash detection script wat ook gebruik maakt van andere scripts.
Ik had in eerste instantie een html file met daarin een javascriptje wat een ander .js en een .vbs bijsluit ('bijsluiten' in de zin van 'includen').

Hier de code van de html file:
flash_detection.html
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML>
<HEAD>
<TITLE>Flash Detection</TITLE>
<META http-equiv="Content-Script-Type" content="text/javascript">
<SCRIPT TYPE="text/javascript" SRC="Dispatcher.js"></SCRIPT>
<SCRIPT LANGUAGE="VBScript" SRC="Dispatcher.vbs"></SCRIPT>
</HEAD>
<BODY BGCOLOR="#ffffff">
<SCRIPT LANGUAGE="JavaScript">

    MM_FlashDispatch(
    "flashsite.html",
    "5.0",
    false,              // don't require latest rev. of plug-in
    "/microsites/GB/en/no_flash/upgrade_flash.html",
    !MM_FlashUserDemurred(),    // don't install if user said no once
    "/microsites/GB/en/no_flash/no_flash.html",
    "/microsites/GB/en/no_flash/no_flash.html",
    false
    );

  </SCRIPT>
</BODY>
</HTML>


Zoals je ziet wordt dispatcher.js en dispatcher.vbs ge-include.
(de code hiervan zal ik even achterwege laten omdat dat echt een lap text is).
Als ik nu de html file open, dan wordt er gechecked of ik flash heb geinstalleerd en of het wel de juiste versie is.
Kortom, dit werkt!

nu wil ik dit gebruiken op andere (micro)websites. Dus ik (ok, mn baas) wil niet in elke micro-site het hele script er in gaan zetten, maar het 'gewoon' includen in de indexpagina van zo'n micro-site.
Het wordt geinclude door:
code:
1
2
3
<body>
<script language="JavaScript" src="flash_detection.js" type="text/javascript"></script>
</body>


De flash_detection.html is veranderd in flash_detection.js
De javascript file ziet er als volgt uit:
flash_detection.js
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
document.write('<HTML>');
document.write('<HEAD>');
document.write('<TITLE>Flash Detection</TITLE>');
document.write('<META http-equiv="Content-Script-Type" content="text/javascript">');
document.write('<SCRIPT TYPE="text/javascript" SRC="Dispatcher.js"></SCRIPT>');
document.write('<SCRIPT LANGUAGE="VBScript" SRC="Dispatcher.vbs"></SCRIPT>');
document.write('</HEAD>');
document.write('<BODY BGCOLOR="#ffffff">');
document.write('<SCRIPT LANGUAGE="JavaScript">');

    MM_FlashDispatch(
    'flashsite.html',
    '5.0',
    false,              // don't require latest rev. of plug-in
    '/microsites/GB/en/no_flash/upgrade_flash.html',
    !MM_FlashUserDemurred(),    // don't install if user said no once
    '/microsites/GB/en/no_flash/no_flash.html',
    '/microsites/GB/en/no_flash/no_flash.html',
    false
    );

document.write('</SCRIPT>');
document.write('</BODY>');
document.write('</HTML>');


Als ik de bovenstaande .js laad in een html dan doet ie het weer niet. Voor zover ik weet klopt de code gewoon, maar blijkbaar doe ik toch iets fout.
Is er iemand die mij kan vertellen wat ik fout doe en hoe ik het wel moet doen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Hoi.
Lezen is moeilijk.

P&W -> W&G

https://fgheysels.github.io/


  • Haso2000
  • Registratie: Juni 2002
  • Laatst online: 27-12-2025
:X jij kan het ook...

[ Voor 24% gewijzigd door Haso2000 op 02-04-2003 14:19 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Het staat hier al hoor. :+

Als je de forumdescription, de FAQ of de stickies leest, dan zie je dat JavaScript, HTML, Flash, ed niet in P&W horen, maar in W&G.

https://fgheysels.github.io/


  • Haso2000
  • Registratie: Juni 2002
  • Laatst online: 27-12-2025
whoami schreef op 02 April 2003 @ 14:19:
Het staat hier al hoor. :+

Als je de forumdescription, de FAQ of de stickies leest, dan zie je dat JavaScript, HTML, Flash, ed niet in P&W horen, maar in W&G.
hehe, ja ik had dat idd al gelezen, en zoals ik net zei .... maargoed, ff ontopic pls? :)

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23:23

RM-rf

1 2 3 4 5 7 6 8 9

je voert een script uit dat enerzijds een script tag schrijft met een externe verwijzing, en vervolgens direct ook een functie uit die externe file aanroept; grote kans dat die functie nog niet ingeladen is (feitelijk gebeurt dat laden pas na een document.close())

dat het eerder wel goedgaat komt eerder door het dynamisch laden, maar door alles met document.write's te doen sla je dat nu net over.

ik zie overigens niet echt in wat je winst is, enkel wat copy +paste werk van je MM_FlashDispatch-aanroep, maar eventueel kan je zelfs die in een extern js-filetje zetten:
een document.write aanroepen in een bestaande html-file die vervolgens de hele html-header opnieuw (dubbel) gaat schrijven is een beetje onzinnig

zet die MM_FlashDispatch-functie aanroep gewoon in een call.js file en include die met <script type="text/javascript" src="call.js"></script>.
maar ook dat brengt je erg weinig winst boven gewoon een snelle copy-paste

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe wil je een volledige html document laden in een andere (met begin en eind HTML tags)?

Misschien zou je je functie in een js kunnen zetten, ipv die hele html file 'converteren' naar een js.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

dus je include een js bestand in je html, maar in dat js bestand wordt wel mbv document.write's een nieuwe page opgebouwd :?
Dan heb je dus een dubbele HTML, HEAD, TITLE, BODY enz.. dat kan niet.

Daarnaast gebruik je in die include een javascript-tag, dat kan maar dan moet je de afsluit-tag niet voluit schrijven omdat anders je script voortijdig beeindigd wordt..

code:
1
2
document.write('</S');
document.write('CRIPT>');


Als laatste ga ik me afvragen wat je bedoeld met:
Dus ik (ok, mn baas) wil niet in elke micro-site het hele script er in gaan zetten, maar het 'gewoon' includen in de indexpagina van zo'n micro-site.
Staat het script dan wel op dezelfde server als die site of probeer je het van een ander domein te laden?
Indien het laatste het geval is: dat kan niet.

[edit:]
Damn, ik wordt nu toch echt oud...; 2 replies voor me ;(

[ Voor 8% gewijzigd door Hangloozz op 02-04-2003 14:39 ]

www.jurgroessen.nl


  • Haso2000
  • Registratie: Juni 2002
  • Laatst online: 27-12-2025
RM-rf schreef op 02 april 2003 @ 14:32:
ik zie overigens niet echt in wat je winst is, enkel wat copy +paste werk van je MM_FlashDispatch-aanroep, maar eventueel kan je zelfs die in een extern js-filetje zetten:
een document.write aanroepen in een bestaande html-file die vervolgens de hele html-header opnieuw (dubbel) gaat schrijven is een beetje onzinnig

zet die MM_FlashDispatch-functie aanroep gewoon in een call.js file en include die met <script type="text/javascript" src="call.js"></script>.
maar ook dat brengt je erg weinig winst boven gewoon een snelle copy-paste
yep, je hebt wel gelijk, maar het is ook niet mijn keuze maar die van mijn opdrachtgever / baas.
BtM909 schreef op 02 april 2003 @ 14:33:
Hoe wil je een volledige html document laden in een andere (met begin en eind HTML tags)?

Misschien zou je je functie in een js kunnen zetten, ipv die hele html file 'converteren' naar een js.
ik ga het even proberen. brb..

  • Haso2000
  • Registratie: Juni 2002
  • Laatst online: 27-12-2025
Yep, het klopt inderdaad dat ik een compleet nieuwe html pagina probeer te laten tussen de <body> en </body>. Hier zal het hoogstwaarschijnlijk fout gaan.
Maar ik moet wel de dispatcher.js en .vbs laden.
Dus als ik de html tags (en daarmee bedoel ik eigenlijk de head-tags) weglaat, hoe moet ik ze dan laden?
Hangloozz schreef op 02 april 2003 @ 14:37:
Daarnaast gebruik je in die include een javascript-tag, dat kan maar dan moet je de afsluit-tag niet voluit schrijven omdat anders je script voortijdig beeindigd wordt..

code:
1
2
document.write('</S');
document.write('CRIPT>');
:) ik meen het: ik moest het 4x opnieuw lezen voordat ik begreep wat je bedoelde met 'voortijdig beeindigd'.
Maar ik snap nu wel wat je bedoelt.
Hangloozz schreef op 02 april 2003 @ 14:37:
Als laatste ga ik me afvragen wat je bedoeld met:

[...]
2 voorbeelden van micropages:
http://www.microsites.ce..../microsites/NL/nl/exp431/ en
http://www.microsites.ce....rosites/NL/nl/lightframe/
edit:
Het is niet als spam bedoelt en mn baas wilt zo min mogelijk stuk code in html files hebben (wij werken hier op de Consumer Electronics afdeling in Amsterdam en niet bij de developers in Eindhoven)
Hangloozz schreef op 02 april 2003 @ 14:37:
Staat het script dan wel op dezelfde server als die site of probeer je het van een ander domein te laden?
Indien het laatste het geval is: dat kan niet.

[edit:]
Damn, ik wordt nu toch echt oud...; 2 replies voor me ;(
ze staan dus wel op dezelfde server :)

[ Voor 9% gewijzigd door Haso2000 op 02-04-2003 15:08 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Mss snap ik het niet, maar ben je er niet door:

HTML:
1
2
3
<SCRIPT language="JavaScript" TYPE="text/javascript" SRC="Dispatcher.js"></SCRIPT>
<SCRIPT LANGUAGE="VBScript" SRC="Dispatcher.vbs"></SCRIPT>
<script language="JavaScript" src="flash_detection.js" type="text/javascript"></script>

te gebruiken waar nodig

en
code:
1
2
3
4
5
6
7
8
9
10
 MM_FlashDispatch(
    "flashsite.html",
    "5.0",
    false,              // don't require latest rev. of plug-in
    "/microsites/GB/en/no_flash/upgrade_flash.html",
    !MM_FlashUserDemurred(),    // don't install if user said no once
    "/microsites/GB/en/no_flash/no_flash.html",
    "/microsites/GB/en/no_flash/no_flash.html",
    false
    )


:?

[ Voor 17% gewijzigd door BtM909 op 02-04-2003 15:09 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Misschien is het handig om de code van Chris Nott te gebruiken
http://dithered.com/javascript/flash.html
Wat ik zo irritant vind is dat het kennelijk met IE alleen in vbscript het mogelijk is om flash te detecteren.

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

neuh hoor :)

Misschine kun je iets met onderstaande code.
Ik heb het hele zwikkie al omgebouwd tot een gecombineerde browser/flashdetector die we hier gebruiken en dat werkt lekker :)

De basis is dit stuk, waarbij de component uitgelezen wordt:
(zelf ff omklussen)

code:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    
<!--// Based on the browser-detection by Henrik Gemal.
© Copyright 1995-2002 Henrik Gemal. All Rights Reserved.
http://gemal.dk/browserspy/ //-->

    <xml:namespace prefix='BROWSERSPY'>
    <style>
        @media all { BROWSERSPY\:clientcaps {behavior:url(#default#clientcaps)} }
    </style>
    
<script language="javascript" type="text/javascript">
<!--
function verCaps(id) {
if (typeof(caps) != "undefined" && typeof(caps.id) != "undefined" && typeof(caps.getComponentVersion) != "undefined")
return caps.getComponentVersion(id, "ComponentID");
else
return false;
}
// -->
</script>

    <BROWSERSPY:clientcaps id="caps"/>
    
<script language="javascript" type="text/javascript">
<!--
    var i_flash;
    var a_flash;
    var v_flash;
    
    var fv = verCaps("{D27CDB6E-AE6D-11CF-96B8-444553540000}");
    if (fv)
    a_flash = fv;
    if (navigator.plugins) {
      for (var i=0; i < navigator.plugins.length; i++) {
        if (navigator.plugins[i].name.toLowerCase().indexOf("shockwave flash") >= 0) {      
          i_flash = true;
          v_flash = navigator.plugins[i].description.substring(navigator.plugins[i].description.toLowerCase().lastIndexOf("flash ") + 6, navigator.plugins[i].description.length);
        }
      }
    }
    alert(a_flash);
    alert(i_flash);
    alert(v_flash);
// -->
</script>
</head>

<body>



</body>
</html>

Wil ik nog wel even benadrukken dat deze basis afkomstig is van Henrik Gemal.

www.jurgroessen.nl


  • Haso2000
  • Registratie: Juni 2002
  • Laatst online: 27-12-2025
Hangloozz schreef op 02 April 2003 @ 16:26:
neuh hoor :)

Misschine kun je iets met onderstaande code.
Ik heb het hele zwikkie al omgebouwd tot een gecombineerde browser/flashdetector die we hier gebruiken en dat werkt lekker :)

De basis is dit stuk, waarbij de component uitgelezen wordt:
(zelf ff omklussen)

code:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    
<!--// Based on the browser-detection by Henrik Gemal.
© Copyright 1995-2002 Henrik Gemal. All Rights Reserved.
http://gemal.dk/browserspy/ //-->

    <xml:namespace prefix='BROWSERSPY'>
    <style>
        @media all { BROWSERSPY\:clientcaps {behavior:url(#default#clientcaps)} }
    </style>
    
<script language="javascript" type="text/javascript">
<!--
function verCaps(id) {
if (typeof(caps) != "undefined" && typeof(caps.id) != "undefined" && typeof(caps.getComponentVersion) != "undefined")
return caps.getComponentVersion(id, "ComponentID");
else
return false;
}
// -->
</script>

    <BROWSERSPY:clientcaps id="caps"/>
    
<script language="javascript" type="text/javascript">
<!--
    var i_flash;
    var a_flash;
    var v_flash;
    
    var fv = verCaps("{D27CDB6E-AE6D-11CF-96B8-444553540000}");
    if (fv)
    a_flash = fv;
    if (navigator.plugins) {
      for (var i=0; i < navigator.plugins.length; i++) {
        if (navigator.plugins[i].name.toLowerCase().indexOf("shockwave flash") >= 0) {      
          i_flash = true;
          v_flash = navigator.plugins[i].description.substring(navigator.plugins[i].description.toLowerCase().lastIndexOf("flash ") + 6, navigator.plugins[i].description.length);
        }
      }
    }
    alert(a_flash);
    alert(i_flash);
    alert(v_flash);
// -->
</script>
</head>

<body>



</body>
</html>

Wil ik nog wel even benadrukken dat deze basis afkomstig is van Henrik Gemal.
:) iig bedankt voor de script (en Henrik Gemal natuurlijk ook!).
hier ga ik volgende week even mee worstelen.

...yep volgende week. Ik heb weekend! ;)

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

Nou ja, het was eigenlijk gericht aan Martijn22 die zich afvroeg of je alleen met VB een flash-detectie kon doen.
Dus ik dacht ik geef um ff dat scriptje om mee te knoeien en nieuwe ideeen op te doen :)

Maar als je d'r iets mee kan, be my guest..

www.jurgroessen.nl


Verwijderd

Bedankt Hangloozz, die Henrik Gemal site ken ik ook. Had alleen nooit gekeken hoe hij dat deed. Zonder vbscript dus :)
Blijft alleen erg vreemd zoals die detectie moet in Internet Explorer. Dat heet toch ActiveX of zo?
Pagina: 1