up up je n'arrive toujours pas à lier mon JS externe à mon HTML
encore le code utilisé est
<script src="fichier.js"></script>
je précise que les deux fichiers sont dans le même repertoire
Salut LordBeerus question idiote mais tu ne te serait pas tromper sur le nom du fichier .js ? parfois il arrive qu'en tapant on rajoute une lettre ou en oublie...
Sinon tu met la balise <script> dans le <body> ou dans le <head> ?
Je ne pense pas faire d'erreur sur le nom du fichier mais je vérifierai et je met mon JS avant la fin du </body>
En fait quand je regarde la console il me dit qu'il a un < attendu sur la première ligne or que à la première ligne du fichier JS c'est la balise script qui est présente
- Edité par Taserface 24 mars 2017 à 14:14:45
L'important ce n'est pas d'être grand mais c'est être à la hauteur
Je ne pense pas faire d'erreur sur le nom du fichier mais je vérifierai et je met mon JS avant la fin du </body>
En fait quand je regarde la console il me dit qu'il a un < attendu sur la première ligne or que à la première ligne du fichier JS c'est la balise script qui est présente
- Edité par LordBeerus il y a 36 minutes
Euuuh ... j'ai peut être mal compris mais tu as une balise script dans ton fichier .js ?
@Mouslih comment peux-tu dire cela Est-ce une méthode standard et ce que tu dis n'a aucun rapport avec l'hierarchie que j'ai décrit plus haut.
Pour finir mon problème est résolu merci @m@rcus62 pour ton astuce j'ai crée deux fichiers (.html et .js) là la liaison marchait bien ensuite je suis retourné sur mes deux fichiers et tout le bazzar que j'ai fait là était dû à un espace dans le nom du ficher
L'important ce n'est pas d'être grand mais c'est être à la hauteur
@Mouslih en fait la méthode que tu as décrite n'est possible que si tu as deux fichiers et que le fichier .html se trouve dans un sous-dossier du dossier JS alors que moi c'est le fichier JS qui est dans un sous-repertoire et ta méthode n'est pas standard car celà peut bien varier d'une hierarchie de dossier à une autre.
Maintenant j'aimerais savoir comment grisé mon boutton d'envoi de formulaire tant que tous les éléments ne sont pas remplis et dans un format correct.
L'important ce n'est pas d'être grand mais c'est être à la hauteur
Bonsoir, je débute en Js et j'ai un peu de mal avec , Mon code n'affiche rien (tp du cours)
//Création de l'élément conteneur
var tp3Div = document.createElement('div');
tp3Div.id = 'divTP3';
//On créer le texte à inserer
var toutTexte = [
document.createTextNode('JavaScript'),
document.createTextNode('JavaScript est un langage de programmation de scripts principalement utilisé dans les pages web interactives mais aussi coté serveur.'),
document.createTextNode('JScript'),
document.createTextNode('JScript est le nom générique de plusieurs implémentations d\'ECMAScript 3 créées par Microsoft.'),
document.createTextNode('ActionScript'),
document.createTextNode('ActionScript est le langage de programmation utilisé au sein d\'applications clientes (Adobe Flash, Adobe Flex) et serveur (Flash media server, JRun, Macromedia Generator).'),
document.createTextNode('EX4'),
document.createTextNode('ECMAScript for XML (E4X) est une extension XML au langage ECMAScript.')
]
//Création du p du début
var paragraphe = document.createElement('p');
var paragrapheText = document.createTextNode('Langages basés sur ECMAScript :');
paragraphe.appendChild(paragrapheText);
//Création de <dl>
var conteneurGlobal = document.createElement('dl'), boucleA, boucleB;
// On créer la boucle avec les éléments
for (var i = 0, a = toutTexte.length; i < a; i += 2)
{
boucleA = document.createElement('dt');
boucleA = appendChild(toutTexte[i]);
conteneurGlobal.appendChild(boucleA);
boucleB = document.createElement('dd');
boucleB = appendChild(toutTexte[i + 1]);
conteneurGlobal.appendChild(boucleB);
}
// On insère tout dans la div
tp3Div.appendChild(paragraphe);
tp3Div.appendChild(conteneurGlobal);
//Insertion dans le body
document.body.appendChild(tp3Div);
J'ai un petit souci avec le cours, j'ai bien suivi à la lettre la création des deux fichiers (html et js), mais lorsque j'ouvre mon fichier html sur Firefox et ouvre la console, dans le débogueur j'ai un message d'erreur qui dit "Cette page ne possède aucune source."
J'ai également un message d'erreur dans Brackets pour mon fichier js, "console. was used before it was defined."
J'ai un petit souci avec le cours, j'ai bien suivi à la lettre la création des deux fichiers (html et js), mais lorsque j'ouvre mon fichier html sur Firefox et ouvre la console, dans le débogueur j'ai un message d'erreur qui dit "Cette page ne possède aucune source."
Essaie de cliquer sur le nom du fichier dans la console à droite, cours.js:1:1, normalement il redirige vers le débogueur.
MéganeCourtas a écrit:
J'ai également un message d'erreur dans Brackets pour mon fichier js, "console. was used before it was defined."
Le message ne devrait pas t'empêcher de faire les exercices, mais si vraiment tu veux le retirer, essaie de rajouter ça à la 1ère ligne dans le fichier js :
/*global console*/
"In chess, it's called Zugzwang, when the only viable move is not to move."
J'ai un petit souci avec le cours, j'ai bien suivi à la lettre la création des deux fichiers (html et js), mais lorsque j'ouvre mon fichier html sur Firefox et ouvre la console, dans le débogueur j'ai un message d'erreur qui dit "Cette page ne possède aucune source."
Essaie de cliquer sur le nom du fichier dans la console à droite, cours.js:1:1, normalement il redirige vers le débogueur.
MéganeCourtas a écrit:
J'ai également un message d'erreur dans Brackets pour mon fichier js, "console. was used before it was defined."
Le message ne devrait pas t'empêcher de faire les exercices, mais si vraiment tu veux le retirer, essaie de rajouter ça à la 1ère ligne dans le fichier js :
/*global console*/
Merci pour ta réponse!
Le deuxième souci a été résolu avec la ligne de code que tu m'as donnée,
cependant le premier persiste, lorsque je clique sur cours.js:1:1, le fichier js s'ouvre dans Firefox
cependant le premier persiste, lorsque je clique sur cours.js:1:1, le fichier js s'ouvre dans Firefox
Dans le débogueur, clique sur l'engrenage à droite et regarde si "Affichez les sources originales" est bien coché. Si non, tu peux cocher et rafraîchir la page.
"In chess, it's called Zugzwang, when the only viable move is not to move."
cependant le premier persiste, lorsque je clique sur cours.js:1:1, le fichier js s'ouvre dans Firefox
Dans le débogueur, clique sur l'engrenage à droite et regarde si "Affichez les sources originales" est bien coché. Si non, tu peux cocher et rafraîchir la page.
Bonjour a tous ! Voilà le première fois depuis que je suis les cours de javascript que je me retrouve bloqué sur une activité pendant aussi longtemps il s'agit de l activité 2 du "Créer des pages web interactive avec javascript "! J'ai relus le cours et ça m'a un peu permis d'avancer mais la je suis bloqué depuis plusieurs heure je n'arrive pas a ajouter les nouveau lien a listeLiens j'ai essayé plusieurs chose sans trop être sur mais rien ne marche pouvez vous me donner un petit coup de pouce ? Sauvez moi ça fait 2 jours que je suis dessus
/*
Activité 1
*/
// Liste des liens Web à afficher. Un lien est défini par :
// - son titre
// - son URL
// - son auteur (la personne qui l'a publié)
var listeLiens = [
{
titre: "So Foot",
url: "http://sofoot.com",
auteur: "yann.usaille"
},
{
titre: "Guide d'autodéfense numérique",
url: "http://guide.boum.org",
auteur: "paulochon"
},
{
titre: "L'encyclopédie en ligne Wikipedia",
url: "http://Wikipedia.org",
auteur: "annie.zette"
}
]
var boutonElt = document.createElement("input");
boutonElt.setAttribute("type","button");
boutonElt.setAttribute("value",("Ajouter un site"));
document.getElementById("contenu").appendChild(boutonElt);
boutonElt.addEventListener("click", function () {
var formElt = document.createElement("form");
var nomSiteElt = document.createElement("input");
nomSiteElt.setAttribute("value","Nom du site");
nomSiteElt.setAttribute("type","textarea");
var urlSiteElt = document.createElement("input");
urlSiteElt.setAttribute("type","textarea");
urlSiteElt.setAttribute("value","Url du site");
var nomAuteurElt = document.createElement("input");
nomAuteurElt.setAttribute("type","textarea");
nomAuteurElt.setAttribute("value","Votre nom ou pseudo");
var submitElt = document.createElement("input");
submitElt.setAttribute("type","submit");
submitElt.setAttribute("value","Ajouter");
submitElt.addEventListener("sumbit",function(e){
var nvSite = nomSiteElt.textContent;
var nvUrl = urlSiteElt.textContent;
var nvAuteur = nomAuteurElt.textContent;
});
formElt.appendChild(nomSiteElt);
formElt.appendChild(urlSiteElt);
formElt.appendChild(nomAuteurElt);
formElt.appendChild(submitElt);
document.getElementById("contenu").replaceChild(formElt,boutonElt);
});
listeLiens.forEach(function(lien){
var pElt = document.createElement("p");
var titreElt = document.createElement("a");
titreElt.textContent = lien.titre + " ";
var urlElt = document.createElement("span");
urlElt.textContent = " " + lien.url;
var auteurElt = document.createElement("span");
auteurElt.innerHTML ="</br> Ajoutez par: " + lien.auteur;
titreElt.setAttribute("href", lien.url);
titreElt.setAttribute("target", "_blank");
titreElt.style.textDecoration = "none";
titreElt.style.color ="#428bca";
titreElt.style.fontWeight ="bold";
pElt.appendChild(titreElt);
pElt.appendChild(urlElt);
pElt.appendChild(auteurElt);
pElt.classList.add("lien");
document.getElementById("contenu").appendChild(pElt);
});/*
Activité 1
*/
// Liste des liens Web à afficher. Un lien est défini par :
// - son titre
// - son URL
// - son auteur (la personne qui l'a publié)
var listeLiens = [
{
titre: "So Foot",
url: "http://sofoot.com",
auteur: "yann.usaille"
},
{
titre: "Guide d'autodéfense numérique",
url: "http://guide.boum.org",
auteur: "paulochon"
},
{
titre: "L'encyclopédie en ligne Wikipedia",
url: "http://Wikipedia.org",
auteur: "annie.zette"
}
]
var boutonElt = document.createElement("input");
boutonElt.setAttribute("type","button");
boutonElt.setAttribute("value",("Ajouter un site"));
document.getElementById("contenu").appendChild(boutonElt);
boutonElt.addEventListener("click", function () {
var formElt = document.createElement("form");
var nomSiteElt = document.createElement("input");
nomSiteElt.setAttribute("value","Nom du site");
nomSiteElt.setAttribute("type","textarea");
var urlSiteElt = document.createElement("input");
urlSiteElt.setAttribute("type","textarea");
urlSiteElt.setAttribute("value","Url du site");
var nomAuteurElt = document.createElement("input");
nomAuteurElt.setAttribute("type","textarea");
nomAuteurElt.setAttribute("value","Votre nom ou pseudo");
var submitElt = document.createElement("input");
submitElt.setAttribute("type","submit");
submitElt.setAttribute("value","Ajouter");
submitElt.addEventListener("sumbit",function(e){
var nvSite = nomSiteElt.textContent;
var nvUrl = urlSiteElt.textContent;
var nvAuteur = nomAuteurElt.textContent;
});
formElt.appendChild(nomSiteElt);
formElt.appendChild(urlSiteElt);
formElt.appendChild(nomAuteurElt);
formElt.appendChild(submitElt);
document.getElementById("contenu").replaceChild(formElt,boutonElt);
});
listeLiens.forEach(function(lien){
var pElt = document.createElement("p");
var titreElt = document.createElement("a");
titreElt.textContent = lien.titre + " ";
var urlElt = document.createElement("span");
urlElt.textContent = " " + lien.url;
var auteurElt = document.createElement("span");
auteurElt.innerHTML ="</br> Ajoutez par: " + lien.auteur;
titreElt.setAttribute("href", lien.url);
titreElt.setAttribute("target", "_blank");
titreElt.style.textDecoration = "none";
titreElt.style.color ="#428bca";
titreElt.style.fontWeight ="bold";
pElt.appendChild(titreElt);
pElt.appendChild(urlElt);
pElt.appendChild(auteurElt);
pElt.classList.add("lien");
document.getElementById("contenu").appendChild(pElt);
});
Bonjour Aurélien, à la ligne 44, petite faute "sumbit" au lieu de "submit", et tu as mis l'écouteur d’événement sur le bouton mais il faut le mettre sur le formulaire.
Ensuite, pour l'ajout du nouveau lien, c'est normal qu'il ne se passe rien parce que tu récupères les valeurs des champs lignes 45/46/47 et puis, plus rien
"In chess, it's called Zugzwang, when the only viable move is not to move."
var boutonElt = document.createElement("input");
boutonElt.setAttribute("type","button");
boutonElt.setAttribute("value",("Ajouter un site"));
document.getElementById("contenu").appendChild(boutonElt);
boutonElt.addEventListener("click", function () {
var formElt = document.createElement("form");
var nomSiteElt = document.createElement("input");
nomSiteElt.setAttribute("value","Nom du site");
nomSiteElt.setAttribute("type","textarea");
var urlSiteElt = document.createElement("input");
urlSiteElt.setAttribute("type","textarea");
urlSiteElt.setAttribute("value","Url du site");
var nomAuteurElt = document.createElement("input");
nomAuteurElt.setAttribute("type","textarea");
nomAuteurElt.setAttribute("value","Votre nom ou pseudo");
var submitElt = document.createElement("input");
submitElt.setAttribute("type","submit");
submitElt.setAttribute("value","Ajouter");
formElt.addEventListener("submit",function(e){
var nvSite = nomSiteElt.textContent;
var nvUrl = urlSiteElt.textContent;
var nvAuteur = nomAuteurElt.textContent;
});
quelque chose comme ca ??? mais ensuite je ne sait pas comment l ajouter a mon listeLiens je suis un peu perdu ! Je dois écrire une autre fonction dans mon event formElt qui ajouterais les nouveaux site a liste Liens ??
- Edité par AurélienLeyssens 4 avril 2017 à 16:04:58
Je dois écrire une autre fonction dans mon event formElt qui ajouterais les nouveaux site a liste Liens ??
Oui, tu peux écrire une fonction ou bien mettre ton code à la suite ligne 23.
Et n'oublie pas de rajouter dans l'event formElt la méthode qui permet d'annuler l'envoi des données. Si tu ne t'en souviens pas, relit le passage du cours sur les formulaires, tu vas la trouver.
"In chess, it's called Zugzwang, when the only viable move is not to move."
quand je laisse ma fonction dans mon event ça ne fonctionne pas et quand je la sors ça me fait tout foirer je sens que je tourne en rond merci beaucoup pour ton aide au moins je sais que je ne suis pas loin de la solution mais je pense que je vais finir fou avant d avoir trouver
Bonjour, c'est encore moi toujours bloqué sur le même exercice (si c'est pas malheureux !) j ai pas mal relu et retravaillé mon code mais je n'ai absolument pas avancé mis a par que je me suis un peu perfectionné ! Je reste positif ! Voilà j'aimerais que vous jetiez un oeil a mon code histoire de me dire pourquoi brackets me dit que j ai un trop grand nombre d'erreur et surtout pourquoi ca ne fonctionne pas je ne demande qu'on complète a ma place mais qu'on me mette au moins sur le bon chemin j'ai bien relu le cours et celui de apprenez a coder avec javascript mais je suis toujours loin de la solution !
var listeLiens = [
{
titre: "So Foot",
url: "http://sofoot.com",
auteur: "yann.usaille"
},
{
titre: "Guide d'autodéfense numérique",
url: "http://guide.boum.org",
auteur: "paulochon"
},
{
titre: "L'encyclopédie en ligne Wikipedia",
url: "http://Wikipedia.org",
auteur: "annie.zette"
}
]
var boutonElt = document.createElement("input");
boutonElt.setAttribute("type","button");
boutonElt.setAttribute("value",("Ajouter un site"));
document.getElementById("contenu").appendChild(boutonElt);
listeLiens.forEach(function(lien){
var pElt = document.createElement("p");
var titreElt = document.createElement("a");
titreElt.textContent = lien.titre + " ";
var urlElt = document.createElement("span");
urlElt.textContent = " " + lien.url;
var auteurElt = document.createElement("span");
auteurElt.innerHTML ="</br> Ajoutez par: " + lien.auteur;
titreElt.setAttribute("href", lien.url);
titreElt.setAttribute("target", "_blank");
titreElt.style.textDecoration = "none";
titreElt.style.color ="#428bca";
titreElt.style.fontWeight ="bold";
pElt.appendChild(titreElt);
pElt.appendChild(urlElt);
pElt.appendChild(auteurElt);
pElt.classList.add("lien");
document.getElementById("contenu").appendChild(pElt);
});
var formElt = document.createElement("form");
var nomSiteElt = document.createElement("input");
nomSiteElt.setAttribute("value","Nom du site");
nomSiteElt.setAttribute("type","textarea");
var urlSiteElt = document.createElement("input");
urlSiteElt.setAttribute("type","textarea");
urlSiteElt.setAttribute("value","Url du site");
var nomAuteurElt = document.createElement("input");
nomAuteurElt.setAttribute("type","textarea");
nomAuteurElt.setAttribute("value","Votre nom ou pseudo");
var submitElt = document.createElement("input");
submitElt.setAttribute("type","submit");
submitElt.setAttribute("value","Ajouter");
formElt.appendChild(nomSiteElt);
formElt.appendChild(urlSiteElt);
formElt.appendChild(nomAuteurElt);
formElt.appendChild(submitElt);
var nvLien= {
init : function(titre,url,auteur){
this.titre = nomSiteElt.textContent;
this.url = urlSiteElt.textContent;
this.auteur = nomAuteurElt.textContent;
}
};
formElt.addEventListener("submit",function(e){
e.preventDefault();
listeLiens.push(nvLien);
});
boutonElt.addEventListener("click", function () {
document.getElementById("contenu").replaceChild(formElt,boutonElt);
});
Salut, ligne 82 tu met l'objet nvLien dans listeLiens, 1er problème : nvLien est vide. Eh oui car tu n'appelles jamais la méthode init, si c'est pas malheureux
Ensuite, dans la méthode init, tu devrais remplacer les textContent par value pour récupérer les valeurs des champs input.
Maintenant, supposons que tu as appelé la fonction init, tu met l'objet nvLien dans listeLiens, et ensuite tu ne fait rien. Donc le nouveau lien n'est toujours pas ajouté au DOM.
Je te conseille de faire une fonction pour la création des liens, tu prends tout le code de la ligne 26 à 45 et tu met ça dans une fonction, cette fonction sera appelé dans le forEach sur listeLiens et aussi dans ton event submit en dernier.
"In chess, it's called Zugzwang, when the only viable move is not to move."
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
quelque chose comme ca ??? mais ensuite je ne sait pas comment l ajouter a mon listeLiens je suis un peu perdu ! Je dois écrire une autre fonction dans mon event formElt qui ajouterais les nouveaux site a liste Liens ??