11497 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Ce message pour une demande d'aide particulière Smiley smile

J’ai le code suivant (code réduit pour être lisible), c'est du code généré (i.e. je ne peux pas le modifier):
<a id="monID" onclick="" href="monLien.html" target="_blank">clic</a>


L'idée (la demande) est d'ouvrir une bête nouvelle fenêtre Smiley rolleyes

A savoir:
- Je ne peux **que** contribuer la valeur du href (le reste du code n'est pas modifiable)
- Je ne peux pas rajouter de code dans le onclick
- Je ne peux pas enlever/modifier le target (il est obligatoirement à "_blank")
- Je ne peux pas ajouter de js ailleurs dans la page, ni dans un fichier externe...

Je suis parti sur différentes pistes, toutes à base de <a href="javascript:...">, mais je n'ai rien trouvé qui fonctionne correctement sur IE11/Chrome/Firefox/Safari Smiley decu

Voilà ce que j'ai testé:
<a href="javascript:window.open('test2.html');" target="_blank">Window.open</a>
    <br>
    <a href="javascript:function ouvre(){window.open('test2.html');}; ouvre();" target="_blank">function</a>
    <br>
    <a href="javascript:window.location('test2.html');" target="_blank">Window.location</a>
    <br>
    <a href="javascript:window.location.href('test2.html');" target="_blank">Window.location.href</a>
    <br>
    <a href="javascript:window.location.assign('test2.html'); void(0);" target="_blank">Window.location.assign</a>
    <br>
    <a href="javascript:document.location('test2.html');" target="_blank">document.location.href</a>
    <br>
    <a href="javascript:document.location.replace('test2.html');" target="_blank">document.location.replace</a>


Un coup de main serait le bienvenu!
Merci pour votre aide ou pour vos pistes...
Modifié par speedlab (16 Jan 2017 - 14:58)
speedlab a écrit :
Bonjour,

Ce message pour une demande d'aide particulière Smiley smile

J’ai le code suivant (code réduit pour être lisible), c'est du code généré (i.e. je ne peux pas le modifier):
&lt;a id="monID" onclick="" href="monLien.html" target="_blank"&gt;clic&lt;/a&gt;


L'idée (la demande) est d'ouvrir une bête nouvelle fenêtre Smiley rolleyes

A savoir:
- Je ne peux **que** contribuer la valeur du href (le reste du code n'est pas modifiable)
- Je ne peux pas rajouter de code dans le onclick
- Je ne peux pas enlever/modifier le target (il est obligatoirement à "_blank")
- Je ne peux pas ajouter de js ailleurs dans la page, ni dans un fichier externe...

Je suis parti sur différentes pistes, toutes à base de &lt;a href="javascript:..."&gt;, mais je n'ai rien trouvé qui fonctionne correctement sur IE11/Chrome/Firefox/Safari Smiley decu

Voilà ce que j'ai testé:
&lt;a href="javascript:window.open('test2.html');" target="_blank"&gt;Window.open&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="javascript:function ouvre(){window.open('test2.html');}; ouvre();" target="_blank"&gt;function&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="javascript:window.location('test2.html');" target="_blank"&gt;Window.location&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="javascript:window.location.href('test2.html');" target="_blank"&gt;Window.location.href&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="javascript:window.location.assign('test2.html'); void(0);" target="_blank"&gt;Window.location.assign&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="javascript:document.location('test2.html');" target="_blank"&gt;document.location.href&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="javascript:document.location.replace('test2.html');" target="_blank"&gt;document.location.replace&lt;/a&gt;


Un coup de main serait le bienvenu!
Merci pour votre aide ou pour vos pistes...

Si tu ne peux modifier que la valeur de @href, une solution (très lourde) pourrait être de lui passer une data URI, c'est est à dire utilisant le protocole data:.
Sous cette forme, tu encapsules directement le contenu de ta page cible, y compris ses scripts, directement dans la page source.
Problème... cela doit être fait pour chaque lien, ce qui rend la solution un brin tordue, mais faisable.
Répondant depuis un portable, je te laisse le soin de chercher la syntaxe de ce type d'URI sur le web.
Qu'est-ce que tu cherches à faire ? parce que target=_blank est déjà censé ouvrir une nouvelle fenêtre.