Toon posts:

[js] Parameters meegeven bij aanroep JS bestand

Pagina: 1
Acties:
  • 139 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik roep in een HTML of PHP bestand een JS bestand aan:
HTML:
1
<script src="flashTopMenu.js"></script>

is het mogelijk om aan dit JS bestand parameters mee te geven, en zo ja, hoe roep ik die parameters op in het JS?

Een soortgelijke constructie als bijvoorbeeld in PHP:
PHP:
1
2
bla.php?taal=nl
$taal = $_REQUEST['taal'];

maar dan voor JS...

Allerlei devforums en tweakers kunnen me tot nu toe niet wijzer maken, dus alle hulp is welkom.
Bedankt alvast.

Verwijderd

First google hit

Google = your friend.

[ Voor 11% gewijzigd door Verwijderd op 12-06-2007 14:49 ]


  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Er zijn verschillende manieren om dit te verkrijgen. Een daarvan is de hele url pakken (window.href) en daar vanaf halen wat na de '?' komt. Daar hebben ze echter wat op gevonden: window.search. Zover ik weet, is er geen functie die automatisch ook de url split op tekens zoals '&' of '='. Daar moet je dus zelf mee aan de slag gaan.

Verwijderd

je kan ook een php als js serveren, of idd de url van de bijbehorende html uitlezen

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
of je maakt een var met een globale(re) scope ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Bedankt voor jullie reacties maar op de geboden manier werkt in dit geval niet, misschien dat ik iets te weinig info heb gegeven. Bij deze even een kleine verheldering.

Ik heb een bestand, top.htm.
Op deze pagina staat een flash object, maar omdat flash in internet explorer eerst geactiveerd moet worden (iets met patenten geloof ik) zie je er zo'n lelijke grijze rand omheen totdat je er op klikt. Om dit te voorkomen heb ik de JS import methode gebruikt:
Code voor de html pagina, top.htm:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table id="Table_01" width="791" height="85" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="2">
            <img src="images/top_01.gif" width="791" height="1" alt=""></td>
    </tr>
    <tr>
        <td width="790" height="84">
            <script src="flashTopMenu.js"></script>
      </td>
        <td>
            <img src="images/top_03.gif" width="1" height="84" alt=""></td>
    </tr>
</table>
</body>
</html>


Code in het bijbehorende JS bestand:
JavaScript:
1
2
3
4
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="790" height="84">');
document.write('<param name="movie" value="images/oem2.swf">');
document.write('<param name="quality" value="high">');
document.write('<embed src="images/oem2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="790" height="84"></embed></object>');


Als ik de hier aangedrage methode gebruik worden de eventuele parameters voor top.htm gereturned, terwijl ik juist de parameters achter
HTML:
1
<script src="flashTopMenu.js"></script>

moet hebben.

Nu wil ik achter de bovenstaande aanroep parameters meegeven, zodat ik die kan gebruiken in flashTopMenu.js, en aan de hand daarvan een flashanimatie in een bepaalde taal kan laten zien.
JavaScript:
1
<script src="flashTopMenu.js?taal=nl"></script>


Zoals ik al aangeef: Ik weet zelf niet of het mogelijk is op deze manier parameters mee te geven, ik hoop dat jullie me hier meer over kunnen vertellen.

[ Voor 6% gewijzigd door Verwijderd op 12-06-2007 15:49 ]


  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Hmm nu je het zegt, hij pakt de src van het html bestand waarin hij zelf word aan geroepen. Ik heb een beetje op internet gekeken voor je, en de oplossing is dat je van elk script-element de bron (src) moet uitlezen en daar verder op moet gaan inspelen. Verder had ik zelf wel verwacht dat hij het url van het script zelf zou nemen maar dat is niet zo...

Ik hoop dat je hier verder mee kunt. Zo niet, hier een spoiler. Wel zelf eerst proberen natuurlijk. ;)

spoiler:
var HTMLScriptElements = document.getElementsByTagName("script");
for (var i=0; i<HTMLScriptElements.length; i++)
{
if (HTMLScriptElements[i].src.match(/flashTopMenu\.js\?(.*)?$/))
alert(RegExp.$1);
}

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Maak gewoon gebruik van <? php ?> in flashTopMenu.js en zet desgewenst de mime-type weer goed.

De output van je php code maak je:

code:
1
var lang = '<? echo "$lang"; ?>';

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 23:49
War is er mis met de seggestie van robIII?
HTML:
1
2
3
4
<script type="text/javascript">
var FlashTopMenuLang = 'foo';
</script>
<script src="flashTopMenu.js"></script>

FlashTopMenuLang is gewoon beschikbaar in je geinclude script...

Regeren is vooruitschuiven


Verwijderd

Topicstarter
War is er mis met de seggestie van robIII?


Helemaal niks, ik heb het zojuist toegepast en het werkt helemaal. Ik ben geen ster met javascript, maar kennelijk is het zo simpel opgelost. Bedankt.
Pagina: 1