Envoyé par : jwo
Date : 17/03/2008 19:46
Hello,
Je suis désolé si c'est un truc commun mais je trouve vraiment pas
Je veux pouvoir récuperer les elements de la page en cours (keywords et autre meta). Mes recherche me font croire qu'il faut utiliser
document.getElementsByTagName("meta")
Mais ca ne marche pas (document fait alors référence à mon .xul je crois, comme quand je modifie le label de mon pannel dans mon xul par le .js)
Après d'autre recherche, je croyais que ce serait
window.content.document.getElementsByTagName("meta");
Mais toujours pas.
Bref voilà mon code qui ne me renvoie rien :(
merci de m'aider,
Jwo
Code:
//what we're looking for var _name='keywords'; // getting all "META" tags var metas = window.content.document.getElementsByTagName("meta"); alert (metas[0].value); // # of tag "META" found var lMetas = metas.length; // store content of meta in a list var listMeta = new Array(); // running through the list for (var i = 0; i<lMetas; i++){ // if the _name attribute is fill in, we treat if ( metas[i].getAttribute("name") == _name){ var content = metas[i].getAttribute("content").split(","); for ( var j=0; j<content.length; j++){ listMeta.push(content[j]); } } } // display alert ( listMeta.join(" *--* "));
Le alert ne m'affiche que des boites vides :(
Envoyé par : hhf
Date : 18/03/2008 00:07
Je comprends pas trop, tu veux recuperer la balise meta de la page courante ou contenue dans une iframe ? parce que ton code essaye de recup une balise <meta> dans la page xul, si c'est le contenue de l'iframe que tu veux, c'est le document de l'iframe que tu dois recuperer. Aides toi de l'inspector DOM pour recuperer le Node que tu veux.
Envoyé par : jwo
Date : 18/03/2008 14:57
Coucou
Si je suis ce qu'il y a ici : http://developer.mozilla.org/fr/docs/Le_DOM_et_JavaScript
alors voici mon code, cétait plus ou moins mon premier et ca ne marche pas.
//what we're looking for var _name='keywords'; // getting all "META" tag var metas = document.getElementsByTagName("meta"); var stringKeywords; for (var i = 0; i < metas.length ; i++){ if(metas[i].name=="keywords") stringKeywords=metas[i].content; } var reg=new RegExp("[ ,;]+", "g"); //now storing keyword in a table var keyTab=stringKeywords.split(reg); alert (keyTab[0]);
Une idée ?
Merci encore
Envoyé par : jwo
Date : 18/03/2008 20:10
Okay j'ai reussi comme suit
//getting all metas values var metas = window._content.document.getElementsByTagName('meta'); //we want the keywords var metaKeywords; for (var m = 0; m < metas.length; m++){ //webmaster could have written keywords in many ways if (metas[m].name == 'keywords' || metas[m]=='Keywords' || metas[m]=='KEYWORDS' || metas[m]=='KeyWords' || metas[m]=='keyWords') //gettin keywords tag content (a string) metaKeywords = metas[m].content; } alert(metaKeywords); //splitting this string in a table var keyTab=metaKeywords.split(',');
J'ai encore un problème au niveau de la derniere ligne : ca fait une erreur JS.
Je pense que ma var metaKeywords n'est pas un string comment la "caster" ?
Merci bcp
Envoyé par : Paul Rouget
Date : 18/03/2008 20:25
quoi comme erreur JS ?
Envoyé par : jwo
Date : 18/03/2008 20:27
j'ai pas de debuger lol, ca n'execute juste pas la suite du code.
By the way comment faire pour coder cette extension simplement en debuguant au fur et a mesure (en "emulant" le xul+js quoi)
Merci vraiment pour l'aide
Envoyé par : Paul Rouget
Date : 18/03/2008 20:52
Regarde dans ta console javascript, tout simplement. Sinon, utilises Venkman (mais moi je me contente de la console). Et puis un try/catch peut aussi aider.
Met toi aussi en mode strict: http://xulfr.org/wiki/ConfigurerMozillaP(..)
Envoyé par : jwo
Date : 18/03/2008 21:15
Okay j'ai fait tout ca, Maintenant j'ai un profil de test avec les bonnes prefs. Mais dans ma console d'erreur il n'y a rien.
Si tu veux, je sais que ca bug car mon label de panel, que je change juste après la ligne qui plante
//splitting this string in a table var keyTab=metaKeywords.split(',');
ne fonctionne pas.
Si je commente cette ligne il marche.
Merci
Envoyé par : jwo
Date : 18/03/2008 23:03
Bon :)
J'ai trouvé, je l'ai "casté" en string a l'aide de string(var qui était pas super determinée).
Maintenant j'ai un autre problème evidemment :D
J'utilise le E4X pour rechercher dans un XML ces keywords
Ca me fait le même genre d'erreur (mon label ne change pas)
Jai une petite idée pourquoi, le script est a un autre format et ma "requete" marche si je le met dans un .js que je lance directement sous fox, il s'agit donc d'un problème avec XUL et le plugin.
En effet, quand je decrit le script il faut que je mette type="text/javascript;e4x=1"
Voici donc dans mon xul comment j'appelle mon script
<script type="text/javascript;e4x=1" src="monScript.js"/>
et je pense que c'est là le problème.
Quelqu'un pour m'aider :)
Merci déjà bcp, grace a vous j'ai pu avancer !
Envoyé par : jwo
Date : 18/03/2008 23:06
Autant pour moi ca marhce, j'avias juste pas nommé ma variable ou je stock le XML comme le noeud racine :)
Voilaaaa si quelqu'un a le genre de pb que j'ai rencontré je l'aiderai avec plaisir, mais je crois etre le seule newbie ici :)
Merci encore
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.