11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

voila je récupere des URL dans une appli web et doit les afficher grace à un script javascript dans un tableau... tout ça va tres bien sauf que les URLs ne semble pas vouloir à etre cassée pour faire un retour chariot quand ils sont plus grand que la largeur de la cellule d'affichage comment puis je faire pour leur dire d'aller à la ligne...

// cr&#1094;&#9560;ation des &#1094;&#9560;l&#1094;&#9560;ments <table> et <tbody>
        var smartlinksTable = document.createElement("table");
        var smartlinksTbody = document.createElement("tbody");

        // cr&#1094;&#9560;ation des cellules
        //for(var j = 0; j < 2; j++) {
            // cr&#1094;&#9560;ation d'un &#1094;&#9560;l&#1094;&#9560;ment <tr>
            var smartlinksLine = document.createElement("tr");

            // cr&#1094;&#9560;ation du premier &#1094;&#9560;l&#1094;&#9560;ment <td> de la ligne SmartLinks
             var smartlinksCell1 = document.createElement("td");
            // Remplissage de la cellule relative au lien source du SmartLink 
                smartlinksCell1.innerHTML += '<span id="TitreSource">' + SmartLink.title_source + '</span>';
                smartlinksCell1.innerHTML += '<br />';
           [b]     smartlinksCell1.innerHTML += (SmartLink.url_source);[/b]
            // ajoute la premiere cellule <td> &#1094;&#9552; la ligne <tr>
                smartlinksLine.appendChild(smartlinksCell1);

Modifié par olk1free (06 Aug 2007 - 17:58)
J'ai trouvé une piste du coté de la methode split() mais je ne suis pas sur

Split URl Functions:

ce que je veux faire concretement c'est insérer des espaces dans l'url pour que comme n'importe quelle autre chaine de caractere elle puisse accepter les retours à la ligne.

Original url: "http://www.website.com/dir1/dir2/dir4/thefile.html"
My final string should be: "http://"http://www.website.com /dir1 /dir2 /dir4 /thefile.html
Oui le split va scinder ta string et tu peux par la suite la reconstruire en inserant des <br/>

var arrayToken = myString.split('/');
var newString = convertArrayToString(arrayToken, 20 );

//Convert an Array to an String with <br/> every X chars
function convertArrayToString(array, insertEveryChars){
	var s = "";
	var countBr = 1;
	
	for (var i = 0 ; i < array.length ; i++){
		if (array[i].length != 0){
			s+=array[i];
			s +='/';
			if (s.length > countBr * insertEveryChars){
				s +='<br/>';
				++countBr;
			}
		}
	}
	return s.slice(0,-1);
}

En fait on insert pas tous les 20 caratères mais des que cela est > à 20 donc si le mot inséré fait 50 et bien on insert à s.length + la longueur du mot + / etc...
Il faut peut-etre changer l'algo pour l'adapter à ton cas!
J'espère que ça va t'aider ! Smiley smile [/i][/i]
est il possible de en fait de lui faire faire ce type d'insertion (ici un espace) par exemple tous les 20 characteres?

j'ai essayé de lire les specs de split, slice substr, substring et replace, je n'en vois aucune qui est capable d'insérer un speca dans une chaine de char tous les 20 characteres???
Modifié par olk1free (07 Aug 2007 - 17:22)
olk1free a écrit :
est il possible de en fait de lui faire faire ce type d'insertion (ici un espace) par exemple tous les 20 characteres?

Ce n'est pas ce que tu demandais au départ...

je pense que tu vas devoir bricoler quelque chose à la main.
Julien Royer a écrit :

Ce n'est pas ce que tu demandais au départ...

je pense que tu vas devoir bricoler quelque chose à la main.



Non effectivement je pensais que cela suffirait mais apparement l'on me dit que internet explorer n'est pas capable de casser une url meme quand on lui met des espaces... bref abracadabantesque... il y a 10 minutes j'ai du refaire des css et des js parce que l'on croit que IE n'accepete pas classname

ahhhhhhhhhhhhhh les stages!
Modifié par olk1free (07 Aug 2007 - 17:31)
olk1free a écrit :
Non effectivement je pensais que cela suffirait mais apparement l'on me dit que internet explorer n'est pas capable de casser une url meme quand on lui met des espaces... bref abracadabantesque... il y a 10 minutes j'ai du refaire des css et des js parce que l'on croit que IE n'accepete pas classname

Il ne faut pas trop croire, mais plutôt vérifier par soi-même. Smiley cligne

C'est assez facile quand on bosse dans le Web, autant en profiter !