Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

onclick avec function est paramètres

9 réponses
Avatar
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

9 réponses

Avatar
MCI (ex do ré Mi chel la si do) [MVP]
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

Avatar
rénald
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





Avatar
MCI (ex do ré Mi chel la si do) [MVP]
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

Avatar
rénald
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





Avatar
Gilles LAURENT [MVP]
"rénald" a écrit dans le message de
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
Avatar
rénald
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" a écrit dans le message de
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





Avatar
rénald
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" a écrit dans le message de
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





Avatar
Michel_D
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" a écrit dans le message de
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







Avatar
rénald
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" a écrit dans le message de
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