Javascript: pb avc un indexOf

omar -  
PhP Messages postés 1774 Statut Membre -
Voila le but (partiel de ce script) est de récupérer le nom dune frame donnée
function essai()
{
var t=parent.window.framehaute.location;
//var s=t.indexOf("site.htm");

return t
}

Donc si je fais doucment.write(essai());
ca écrit:
c:\\mes documents\site.htm

Or je ne voulais que récupérer le "site.htm"

(je précise que dans ma définition de mes frames en frame src j ai mis un chemin relatif qui est site.htm et non le chemon absolu)

Donc je penssais utiliser la fonction indexOf
var s=t.indexOf("site.htm");
mais il me semble que la variable t n est pas un string et donc ca bug coment faire marche cela?

je voudrais savoir donc si cette adresse absolu contient le mot "site.htm"

Merci d avance!!

4 réponses

Marden Messages postés 1075 Statut Membre 210
 
Salut omar et à tous,

Un petit test (sous I.E.5) avec "typeof(t)" indique en effet que "t" est un "objet". A défaut d'en explorer les attributs, j'ai essayé :
u = "" + t ;
qui a l'air de fonctionner comme un cast "(char *)" du C et fournit une chaîne sur laquelle il est possible d'employer les méthodes relatives aux chaînes.
0
omar
 
Merci ma biche Allez A+!:°)
0
Marden Messages postés 1075 Statut Membre 210
 
C'est la première fois qu'on m'appelle "ma biche", alors que je me voyais plutôt le profil d'un "sanglier" !!!
0
omar
 
Et bien je pensais al Oui de Finess en disqant cela mais j'aurais osi bien peu t apelle MICHAEL JACKSON Ouzbe!!
A+
0
PhP Messages postés 1774 Statut Membre 606
 
Salut Omar,

"Et mes acclamations, mon enthousiame !
...
Mon bon Blaze ... Qu'il est bon ce Blaze !
...
Ils m'acclamaient pas !
Ils m'acclamaient pas !"

LFDG

Bien revenons à des trucs moins drôles : Javascript

window.location renvoi un objet et pas une chaîne de type String (qui est d'ailleurs également un objet mais passons)

Donc pour utiliser la méthode .indexOf() il faut passer une chaîne

Et cette chaîne ben tu la trouves tout bêtement dans href :

Ce qui donne :

var t=parent.window.framehaute.location.href;
var s=t.indexOf("site.htm");

si s contient -1 alors la chaîne recherchée n'est pas trouvée.

Autrement voici une fonction super utile que j'ai piquée dans la doc JavaScript et qui te permet de parcourir toutes les propriétés d'un objet (bon y'a qd même quelques cas où elle plante mais c'est rare)
Disons que ca permet de faire une sorte d'introspection

Marche avec IE et NS

function show_props(obj, objName) 

{
var result = ""
for (var i in obj)
{
result += objName + "." + i + " = " + obj[i] + "\n"
}
return result;
}


Par ex remplace ta fonction essai() par

function essai() 

{
alert(show_props(parent.window.framehaute.location,"parent.window.framehaute.location"));
}


et appelles la : tu verras c'est magique !

Lorsque l'objet possède trop de propriétés dans ce cas il faut filtrer un peu sinon l'affichage n'est plus assez grand.

Don Saluste

PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]
0