Journal konqueror et le javasccript

Posté par  (site web personnel) .
Étiquettes : aucune
0
29
avr.
2004
Bonjour journal,

Etant donné que je n'ai pas accès à mon newsreader préféré et que je sais qu'il y a une communauté importante d'utilisateurs de Konqueror qui visite le site, je poserai donc ma question ici.

En pleine conception, je me retrouve avec le problème suivant :
(désolé, je ne suis pas habitué à poster, les crochets remplacent donc les traditionnels signes inférieur et supérieur)

[script type="text/javascript"]
[!--
function Soumet(maValeur)
{
document.monFormulaire.monChamp.value = maValeur;
document.monFormulaire.submit();
}
--]
[/script]
[form action="maPage.php" method="post" name="monFormulaire"]
[input name="monChamp" type="hidden" /]
[/form]
[a href="#" onclick="Soumet('valeurTest');"]Soumission[/a]

Quand on clique sur soumission, le formulaire n'est pas soumis, par contre, monChamp est bien affecté.
A noter que sous les autres navigateurs Gecko, Opera et IE, la soumission se fait bien, je me retrouve bien avec une variable monChamp avec la valeur 'valeurTest' dans la liste des variables POST qui sont arrivées sur le fichier maPage.php.

Pour répondre à de futures questions, non il n'est pas envisageable de remplacer les ancres par des boutons.

Si certains ont une explication à me donner, je suis à l'écoute.
  • # Re: konqueror et le javasccript

    Posté par  . Évalué à 1.

    Je n'ai pas d'information, mais sache que Konqueror souffre encore de plusieurs bug concernant le Javascript...
    Par exemple l'évènement onunload n'est pas géré...
    Donc cherche sur http://bugs.kde.org(...) on sait jamais
  • # Re: konqueror et le javasccript

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    je sais pas pour vous mais en javascript, je deteste les chemins abolus, je prefere les chemisn relatifs...

    essaye en relatif pour voir : on sait jamais...

    ça devrait ressembler à ça :

    [script type="text/javascript"]
    [!--
    function Soumet(f, maValeur)
    {
    f.monChamp.value = maValeur;
    f.submit();
    }
    --]
    [/script]
    [form action="maPage.php" method="post" name="monFormulaire"]
    [input name="monChamp" type="hidden" /]
    [/form]
    [a href="#" onclick="Soumet(this.form, 'valeurTest');"]Soumission[/a]

    ensuite essaye de passer un entier au lieu d'une chaine comme valeur.... et essaye de mettre une valeur par défaut à : [input name="monChamp" type="hidden" /] => je trouve ça plus propre...

    M.
  • # Re: konqueror et le javasccript

    Posté par  . Évalué à 1.

    Je peux y aller de ma connerie quotidienne ?
    Ok ? Bon alors allons-y !

    Dans les pages que je développe, je n'utilise pas la notation par nom d'objet car j'ai déjà vu des cas où ça foire. Par contre, les collections fonctionnent toujours (du moins pour ce que j'ai pu en voir). Je remplacerai donc dans ton cas les :
    document.monFormulaire.
    par
    document.forms[0].
    si il n'y a qu'un seul formulaire.
    Dans le cas contraire, il faut en retrouver l'index. En passant par une fonction JavaScript, y'a moyen de trouver l'index des objets de la page en cours dans leur collection respective. Une recherche de "Javascript showProps" dans google devrait donner les sources d'une telle fonction.

    Pour le reste, plutôt que de faire un <a href="#" onclick="....."
    deux propositions :
    <a href="#" onClick="JavaScript:Soumet(maValeur);"

    ou alors, mieux (en tout cas ma préférence) :

    <a href="JavaScript:Soumet (maValeur);"

    Voilà ma modeste contribution.

    En espérant avoir aidé....
    • [^] # Re: konqueror et le javasccript

      Posté par  . Évalué à 1.

      Je me répond à moi-même, car je viens de relire le tout (le journal et les réponses), et deux questions me tarraudent l'esprit :

      1) Les tags <body> et </body> manquent dans ton post, mais je suppose que c'était pour le limiter à l'essentiel, non ? Sinon, si c'est un copier/coller, konqueror est peut-être plus sensible à ce genre d'oubli que les autres ?
      2) Quel est l'intéret d'écrire :
      <a href="#" onClick="blabla();">click !</a>
      plutôt que
      <a href="JavaSciript:blabla();">click !</a> ?

      Je ne critique pas, hein, c'est juste pour savoir... Il me semble que dans le 2° on force un gestionnaire d'évenements (le onclick) par dessus un objet évenementiel (le lien) alors que dans le 1°, il n'y a que l'objet évenementiel, point... Enfin, je dis ça.... Je suis loin d'être un expert, juste un gars qui se débrouille. Si j'ai dis des conneries, merci de me corriger sans trop taper !
      • [^] # Re: konqueror et le javasccript

        Posté par  (site web personnel) . Évalué à 1.

        Tout d'abord merci de participer à ce journal,

        Pour répondre à tes questions,
        1) oui je me suis limité à l'essentiel, pour la qualité du code, vous pouvez me faire confiance, je suis un maniaque
        2) il se trouve que dans certains navigateurs, si je fait href="javascript:blabla();", on me repond : "protocole inconnu" ou bien encore une nouvelle page est ouverte tandis que l'actuelle est vide. Tout un tas de petits soucis qui me font préférer la seconde solution.
        3) j'avais déja essayer avec forms[0] (puisqu'il n'y a qu'un formulaire) sans plus de succès. A dire vrai, comme document.monFormulaire.monChamp.value = maValeur; fonctionne, il me parait bizarre que document.monFormulaire.submit(); ne fonctionne pas alors que submit est une methode de l'objet Form depuis Mathusalem...
  • # Re: konqueror et le javasccript

    Posté par  . Évalué à 2.

    Ça ne va pas répondre à ta question mais tant pis. C'est très mal de faire un formulaire comme ça! Ça empêche les gens ayant des navigateurs sans javascript d'utiliser ta page. Franchement, quel interêt de faire ça? :(
    Fais un vrai bouton submit avec un "onsubmit" si tu veux faire une petite vérification en javascript au passage. Je te conseille chaudement la lecture de http://www.openweb.eu.org/articles/formulaire_accessible/(...) et de http://www.openweb.eu.org/articles/validation_formulaire/(...) (surtout le 2e).
    • [^] # Re: konqueror et le javascript

      Posté par  (site web personnel) . Évalué à 1.

      Merci de tes conseils,

      Je te répondrais en écrivant qu'en fait, cette petite partie de code fait partie d'un projet beaucoup plus grand (un CMS/groupware) et qu'au départ, l'idée de cette petite partie de code est de faire un explorateur de fichier.

      Visualisons la scène : une liste de répertoires et de fichiers avec la possibilité de renommer, d'effacer ces éléments et d'explorer les répertoires ! (on arrive à mon bout de code). L'idée de départ était de passer le chemin du dossier à explorer en paramètre dans l'URL (en GET donc), idée pour le moins mauvaise car un petit malin pouvait s'amuser à changer le chemin directement. La seconde idée était donc de passer le chemin en POST, ce qui explique le bout de code.

      Du coup, mon formulaire n'en est pas un au sens strict du terme, mais je continuerai à faire mes formulaires conventionnels aussi lisibles que possible ! Foi de MrJoops !

      Pour mon cas, si tu as une solution plus lisible, je suis preneur.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.