Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Recuperer elements page courante

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 :(

# Re: Recuperer elements page courante

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.

# Re: Recuperer elements page courante

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

# Re: Recuperer elements page courante

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

# Re: Recuperer elements page courante

Envoyé par : Paul Rouget

Date : 18/03/2008 20:25

quoi comme erreur JS ?

# Re: Recuperer elements page courante

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

# Re: Recuperer elements page courante

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(..)

# Re: Recuperer elements page courante

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

        

# Re: Recuperer elements page courante

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 !

# Re: Recuperer elements page courante

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.