OVH Cloud OVH Cloud

ouvrir un document dans un onglet

3 réponses
Avatar
Thanaos
Bonjour,

J'aimerai ouvrir un document dans un nouvel onglet ou eventuellement
dans une nouvelle page.

A l'heure actuelle j'ai la ligne suivante qui l'ouvre dans la frame
appelante:

<th width="340" scope="col"><div align="left"><a href="<%="file://" +
((DocumentationBean)al.get(i)).getUrl()%>"><%=((DocumentationBean)al.get(i)).getUrl()%></a></a></div></th>

Pensez vous que ce soit faisable ?

Merci

3 réponses

Avatar
TJ
On 2008-11-21, Thanaos wrote:
Bonjour,

J'aimerai ouvrir un document dans un nouvel onglet ou eventuellement
dans une nouvelle page.

A l'heure actuelle j'ai la ligne suivante qui l'ouvre dans la frame
appelante:

<th width="340" scope="col"><div align="left"><a href="<%="file://" +
((DocumentationBean)al.get(i)).getUrl()%>"><%=((DocumentationBean)al.get(i)).getUrl()%></a></a></div></th>


^^^
Il n'y a pas une fermeture de balise 'a' en trop ?

Et avec <a href="..." target="_blank">...</a> est-ce que cela répond à
ton besoin ?

Dans ton code (mais je suis perturbé par les <% %>) :

<th width="340" scope="col"><div align="left"><a href="<%="file://" +
((DocumentationBean)al.get(i)).getUrl()%>"><%=((DocumentationBean)al.get(i)).getUrl()% target="_blank"></a></a></div></th>

Il ne manque pas l'intitulé du lien ?
Avatar
Mayeul
Thanaos a écrit :
Bonjour,



Bonjour,

J'aimerai ouvrir un document dans un nouvel onglet ou eventuellement
dans une nouvelle page.



Tes visiteurs, eux, n'aimeront pas. Ils savent décider eux-même si un
lien doit s'ouvrir dans la page en cours ou dans un nouvel onglet (ou
une nouvelle fenêtre).


De toute façon, je ne crois pas qu'il existe un moyen normalisé d'ouvrir
dans un nouvel onglet. Pour ouvrir dans une nouvelle fenêtre, comme dit
précédemment, il faut utiliser target="_blank" si ce n'est pas du XHTML
strict. Ou mettre du javascript pour ouvrir une pop-up (et qui ne bloque
pas tout si javascript est désactivé !) si c'est du XHTML strict.

--
Mayeul
Avatar
SAM
Le 11/21/08 11:56 AM, Thanaos a écrit :
Bonjour,

J'aimerai ouvrir un document dans un nouvel onglet ou eventuellement
dans une nouvelle page.

A l'heure actuelle j'ai la ligne suivante qui l'ouvre dans la frame
appelante:

<th width="340" scope="col"><div align="left"><a href="<%="file://" +
((DocumentationBean)al.get(i)).getUrl()%>"><%=((DocumentationBean)al.get(i)).getUrl()%></a></a></div></th>


Pensez vous que ce soit faisable ?



déjà on se demande pourquoi il y a un div dans le TD
(si vraiment on aime la soupe, le align peut être dans le TD)

ensuite pour une nouvelle fenêtre et toujours en mode "transitionnal" on
met un target au lien :
- target="_blank" ouvre systématiquement une nouvelle fenêtre
(ou un onglet si le navigateur a été réglé comme ça)
- target="toto" charge le fichier dans la fenêtre 'toto'
- au premier coup : ouverture d'une nouvelle fenêtre
- aux coups suivants : si toto n'a pas été fermée ça y charge
directement

Problèmes :
- si ouverture en onglet ça ne va pas systématiquement ouvrir l'onglet
(c'est un réglage personnel à l'utilisateur)
- méthode 'toto' : si ça ouvre en fenêtre, aux coups suivants la
fenêtre-pop-up restera invisible (derrière la
fenêtre mère) si ça ouvre en onglet, pas sûr
que l'onglet s'ouvre (mme pb que ci-avant)

Il faut donc :
- ne pas utiliser target
- préférer le javascript
le tout laissant l'opportunité au visiteur (par clic-droit) de choisir
ce qu'il veut

<a href="blabla.htm" onclick="return pop(this);">bla bla</a>


JS :
===
function pop(quoi) {
if(indexof truc == 'undefined' || !truc || truc.closed)
truc = window.open();
truc.location = quoi.href;
truc.focus();
return false;
}



La mise en onglet reste à la convenance de l'utilisateur, il n'y a pas
de JS qui puisse l'obliger.


--
sm