onclick avec function est paramètres

Le
rénald
Hello,

Je vais essayer d'être le plus clair possible, pour cela je vais vous
annexer une portion de mon script, ce dernier fait partie d'une application
HTA (et bien sur il est incomplet volontairement) :

***************************

<html>
<head>
<title>Mise à Jour</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"
>
</head>

<script language="vbscript">


function update_html(model)
MsgBox(model)
End function

function
page_html(numero,quantity,model,typo,sn,in_stock,on_lend,username,comment,lost)

.

document.write("<input name='button' Value='Upgrade' type='button'
onClick='update_html(model)'>")

end function


</script>
<body>
..
********************************

comme vous pouvez le constater ce qui me pose problème est la fonction
javascript onClick='update_html(model)'. model n'a pas une valeur nulle à
la base car dans la même fonction j'arrive à faire un msgbox (model).

comme vous pouvez le constater, cette commande onclick est générée dans une
page html grace à document.write

Mais lorsque la requête arrive dans la fonction update_html, rien ne se
passe. aucun paramètre n'est transmis. Je reçois même une erreur "object
requested".

avez-vous une idée ?

(je suis désolé si cela parait complexe)

cordiales salutations

Rénald
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MCI (ex do ré Mi chel la si do) [MVP]
Le #5584371
Bonsoir !

Voicie une version qui fonctionne :

<html>
<head>
<title>Mise à Jour</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"

<script language="JScript">

function update_html(model) {
alert(model);
}
function page_html() {
document.write("<input name='button' Value='Upgrade' type='button'
onClick='update_html(12345);'>");
}
</script>
</head>

<body>
<div id="MONBLOC"></div>
<script language="JScript">
page_html();
</script>
</body>
</html>




@-salutations
--
Michel Claveau

rénald
Le #5929931
Hello,

Merci de votre réponse, en effet elle fonctionne, mais elle est en
javascript... et en vbscript est-ce que cela est aussi possible ?

Merci

Rénald

"MCI (ex do ré Mi chel la si do) [MVP]" wrote:

Bonsoir !

Voicie une version qui fonctionne :

<html>
<head>
<title>Mise à Jour</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"

<script language="JScript">

function update_html(model) {
alert(model);
}
function page_html() {
document.write("<input name='button' Value='Upgrade' type='button'
onClick='update_html(12345);'>");
}
</script>
</head>

<body>
<div id="MONBLOC"></div>
<script language="JScript">
page_html();
</script>
</body>
</html>




@-salutations
--
Michel Claveau





MCI (ex do ré Mi chel la si do) [MVP]
Le #6162861
Re !

et en vbscript est-ce que cela est aussi possible ?


Certainement. Mais je connais peu VBscript.
Et j'aime bien JScript...

Quelqu'un d'autre te répondra sûrement.
Mais, pourquoi ne pas utiliser JScript, vu que la fonction écrite à la
volée est en JScript ?

@+

Michel Claveau

rénald
Le #6169571
Hello,

Surtout ne pas rire, mais je connais très peu Javascript... par contre
vbscript je m'y casse les dents depuis quelques années (et je suis toujours
aussi mauvais...)

A+

"MCI (ex do ré Mi chel la si do) [MVP]" wrote:

Re !

et en vbscript est-ce que cela est aussi possible ?


Certainement. Mais je connais peu VBscript.
Et j'aime bien JScript...

Quelqu'un d'autre te répondra sûrement.
Mais, pourquoi ne pas utiliser JScript, vu que la fonction écrite à la
volée est en JScript ?

@+

Michel Claveau





Gilles LAURENT [MVP]
Le #6180951
"rénald" news:
| Hello,

Bonsoir,

| Surtout ne pas rire, mais je connais très peu Javascript... par contre
| vbscript je m'y casse les dents depuis quelques années (et je suis
| toujours aussi mauvais...)

Vous obtenez l'erreur "Objet attendu" car si la methode "document.write"
est invoquée APRES le chargement de la page (ce qui doit être votre cas)
alors la page HTML en cours sera écrasée par le contenu spécifié dans la
méthode. Ci-dessous une version VBScript permettant de mettre en
évidence ce fonctionnement. Il vous suffit de mettre ou supprimer les
commentaires des blocs d'instructions :

--- Coupez ici : Test.hta ---
<html>
<head>
<title>Mise à Jour</title>

<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">

<script language="VBScript">

Function update_html (model)

MsgBox model, 0, "Modèle"

End Function

Function page_html (model)

' ce bloc d'instructions génère l'erreur "Objet attendu"
' s'il est invoqué APRES le chargement de la page

' document.write ( _
' "<input type='button' Value='Upgrade' " & _
' "onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>")

' ce bloc d'instructions ne provoque pas d'erreur car le code HTML
' est écrit à l'intérieur d'une balise existante

document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>"

End Function

</script>
</head>

<body>

<input type='button' value='Go !' onClick='page_html("HP")'>

<span id='update'></span>

</body>
</html>
--- Coupez ici : Test.hta ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
rénald
Le #6320891
Hello,

Je savais bien que qq'un allait répondre à ce prob. et bien entendu cela
dépasse mes compétences....

Je vais essayer ce soir.

merci

"Gilles LAURENT [MVP]" wrote:

"rénald" news:
| Hello,

Bonsoir,

| Surtout ne pas rire, mais je connais très peu Javascript... par contre
| vbscript je m'y casse les dents depuis quelques années (et je suis
| toujours aussi mauvais...)

Vous obtenez l'erreur "Objet attendu" car si la methode "document.write"
est invoquée APRES le chargement de la page (ce qui doit être votre cas)
alors la page HTML en cours sera écrasée par le contenu spécifié dans la
méthode. Ci-dessous une version VBScript permettant de mettre en
évidence ce fonctionnement. Il vous suffit de mettre ou supprimer les
commentaires des blocs d'instructions :

--- Coupez ici : Test.hta ---
<html>
<head>
<title>Mise à Jour</title>

<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">

<script language="VBScript">

Function update_html (model)

MsgBox model, 0, "Modèle"

End Function

Function page_html (model)

' ce bloc d'instructions génère l'erreur "Objet attendu"
' s'il est invoqué APRES le chargement de la page

' document.write ( _
' "<input type='button' Value='Upgrade' " & _
' "onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>")

' ce bloc d'instructions ne provoque pas d'erreur car le code HTML
' est écrit à l'intérieur d'une balise existante

document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>"

End Function

</script>
</head>

<body>

<input type='button' value='Go !' onClick='page_html("HP")'>

<span id='update'></span>

</body>
</html>
--- Coupez ici : Test.hta ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





rénald
Le #6600651
Hello,

Merci de votre réponse.

En effet, cela fonctionne à merveille pour le passage d'un seul paramètre.

maintenant, si je veux passer plusieurs paramètre comment cela se
présente-t'il ?

merci

Rénald

"Gilles LAURENT [MVP]" wrote:

"rénald" news:
| Hello,

Bonsoir,

| Surtout ne pas rire, mais je connais très peu Javascript... par contre
| vbscript je m'y casse les dents depuis quelques années (et je suis
| toujours aussi mauvais...)

Vous obtenez l'erreur "Objet attendu" car si la methode "document.write"
est invoquée APRES le chargement de la page (ce qui doit être votre cas)
alors la page HTML en cours sera écrasée par le contenu spécifié dans la
méthode. Ci-dessous une version VBScript permettant de mettre en
évidence ce fonctionnement. Il vous suffit de mettre ou supprimer les
commentaires des blocs d'instructions :

--- Coupez ici : Test.hta ---
<html>
<head>
<title>Mise à Jour</title>

<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">

<script language="VBScript">

Function update_html (model)

MsgBox model, 0, "Modèle"

End Function

Function page_html (model)

' ce bloc d'instructions génère l'erreur "Objet attendu"
' s'il est invoqué APRES le chargement de la page

' document.write ( _
' "<input type='button' Value='Upgrade' " & _
' "onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>")

' ce bloc d'instructions ne provoque pas d'erreur car le code HTML
' est écrit à l'intérieur d'une balise existante

document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>"

End Function

</script>
</head>

<body>

<input type='button' value='Go !' onClick='page_html("HP")'>

<span id='update'></span>

</body>
</html>
--- Coupez ici : Test.hta ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Michel_D
Le #6604091
Bonjour,

Essaye comme ceci :

<html><head><title>Mise à Jour</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">
<script language="VBScript">
Function update_html (var1,var2)
MsgBox var1 & vbcrlf & var2, 0, "Modèle"
End Function
Function page_html (var1,var2)
document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html " & Chr(34) & var1 & Chr(34) & "," & _
Chr(34) & var2 & Chr(34) & "'>"
End Function
</script></head>
<body>
<input type='button' value='Go !' onClick='page_html "HP","Autre"'>
<span id='update'></span>
</body>
</html>

Hello,

Merci de votre réponse.

En effet, cela fonctionne à merveille pour le passage d'un seul paramètre.

maintenant, si je veux passer plusieurs paramètre comment cela se
présente-t'il ?

merci

Rénald

"Gilles LAURENT [MVP]" wrote:

"rénald" news:
| Hello,

Bonsoir,

| Surtout ne pas rire, mais je connais très peu Javascript... par contre
| vbscript je m'y casse les dents depuis quelques années (et je suis
| toujours aussi mauvais...)

Vous obtenez l'erreur "Objet attendu" car si la methode "document.write"
est invoquée APRES le chargement de la page (ce qui doit être votre cas)
alors la page HTML en cours sera écrasée par le contenu spécifié dans la
méthode. Ci-dessous une version VBScript permettant de mettre en
évidence ce fonctionnement. Il vous suffit de mettre ou supprimer les
commentaires des blocs d'instructions :

--- Coupez ici : Test.hta ---
<html>
<head>
<title>Mise à Jour</title>

<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">

<script language="VBScript">

Function update_html (model)

MsgBox model, 0, "Modèle"

End Function

Function page_html (model)

' ce bloc d'instructions génère l'erreur "Objet attendu"
' s'il est invoqué APRES le chargement de la page

' document.write ( _
' "<input type='button' Value='Upgrade' " & _
' "onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>")

' ce bloc d'instructions ne provoque pas d'erreur car le code HTML
' est écrit à l'intérieur d'une balise existante

document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>"

End Function

</script>
</head>

<body>

<input type='button' value='Go !' onClick='page_html("HP")'>

<span id='update'></span>

</body>
</html>
--- Coupez ici : Test.hta ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr







rénald
Le #6661411
Hello,

Je vous remercie tous de vos réponse, en fait elle m'on aidé à trouver mon
bonheur.

Voici ce que j'ai fini par écrire dans cette bénite fonction :

function
page_html(numero,quantity,model,typo,sn,in_stock,on_lend,lend_date,username,comment,lost)

document.getElementById ("update").innerHTML= _
"<form>" &_
"<p><input type='textarea' name ='numero' size='50' Value='" &numero
&"'>Numero<br>" &_
"<p><input type='textarea' name ='quantity' size='50' Value='" &quantity
&"'>Quantity<br>" &_
"<p><input type='textarea' name ='model' size='50' Value='" &model
&"'>Model<br>" &_
"<p><input type='textarea' name ='typo' size='50' Value='" &typo
&"'>Type<br>" &_
"<p><input type='textarea' name ='sn' size='50' Value='" &sn &"'
SN<br>" &_
"<p><input type='textarea' name ='in_stock' size='50' Value='" &in_stock

&"'>In Stock<br>" &_
"<p><input type='textarea' name ='on_lend' size='50' Value='" &on_lend
&"'>On Lend<br>" &_
"<p><input type='textarea' name ='lend_date' size='50' Value='" &lend_date
&"'>Lend date<br>" &_
"<p><input type='textarea' name ='username' size='50' Value='" &username
&"'>Username<br>" &_
"<p><input type='textarea' name ='comment' size='50' Value='" &comment &"'
Comment<br>" &_
"<p><input type='textarea' name ='lost' size='50' Value='" &lost

&"'>Lost<p>" &_
"<p><input type='Button' name ='upgrade' Value='Upgrade' onClick='call
miseajour(numero.value,quantity.value,model.value,typo.value,sn.value,in_stock.value,on_lend.value,lend_date.value,username.value,comment.value,lost.value)'>" &_
"<input type='reset' name ='Reset'>" &_
"<input type='button' name='button' Value='Exit'
onClick='window.close()'></form>"
End Function 'page html




"Michel_D" wrote:

Bonjour,

Essaye comme ceci :

<html><head><title>Mise à Jour</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">
<script language="VBScript">
Function update_html (var1,var2)
MsgBox var1 & vbcrlf & var2, 0, "Modèle"
End Function
Function page_html (var1,var2)
document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html " & Chr(34) & var1 & Chr(34) & "," & _
Chr(34) & var2 & Chr(34) & "'>"
End Function
</script></head>
<body>
<input type='button' value='Go !' onClick='page_html "HP","Autre"'>
<span id='update'></span>
</body>
</html>

Hello,

Merci de votre réponse.

En effet, cela fonctionne à merveille pour le passage d'un seul paramètre.

maintenant, si je veux passer plusieurs paramètre comment cela se
présente-t'il ?

merci

Rénald

"Gilles LAURENT [MVP]" wrote:

"rénald" news:
| Hello,

Bonsoir,

| Surtout ne pas rire, mais je connais très peu Javascript... par contre
| vbscript je m'y casse les dents depuis quelques années (et je suis
| toujours aussi mauvais...)

Vous obtenez l'erreur "Objet attendu" car si la methode "document.write"
est invoquée APRES le chargement de la page (ce qui doit être votre cas)
alors la page HTML en cours sera écrasée par le contenu spécifié dans la
méthode. Ci-dessous une version VBScript permettant de mettre en
évidence ce fonctionnement. Il vous suffit de mettre ou supprimer les
commentaires des blocs d'instructions :

--- Coupez ici : Test.hta ---
<html>
<head>
<title>Mise à Jour</title>

<HTA:APPLICATION
APPLICATIONNAME="HTA Upgrade"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal">

<script language="VBScript">

Function update_html (model)

MsgBox model, 0, "Modèle"

End Function

Function page_html (model)

' ce bloc d'instructions génère l'erreur "Objet attendu"
' s'il est invoqué APRES le chargement de la page

' document.write ( _
' "<input type='button' Value='Upgrade' " & _
' "onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>")

' ce bloc d'instructions ne provoque pas d'erreur car le code HTML
' est écrit à l'intérieur d'une balise existante

document.getElementById ("update").innerHTML= _
"<input type='button' Value='Upgrade' " & _
"onClick='update_html(" & Chr(34) & model & Chr(34) & ")'>"

End Function

</script>
</head>

<body>

<input type='button' value='Go !' onClick='page_html("HP")'>

<span id='update'></span>

</body>
</html>
--- Coupez ici : Test.hta ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr










Publicité
Poster une réponse
Anonyme