Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme avec window.open()

4 réponses
Avatar
laurent.vinesse
Ca semble tout bete mais je bute la dessus depuis une journée.

Je fais un simple :

mywin=window.open("");
mywin.location.href=sURL;
mywin.document.title="mytitle";
// suite des opération pour controler ma fenêtre et controler dynamiquement
son contenu...

Tant que mon site etait sur file system, ça marchait parfaitement et depuis
que je l'ai porté chez mon hébergeur, ça ne marche plus.
Le seule différence est sURL qui etait de la forme file: et qui devient
http:.
Dans le cas http, après l'affection de sURL qui charge normallement la
fenêtre, ça ne marche plus du tout (erreur Javascript) comme si mywin
n'était plus le bon handle de fenêtre
Merci à ceux qui auraient des idées.

Laurent

4 réponses

Avatar
O.L.
laurent.vinesse avait prétendu :
Ca semble tout bete mais je bute la dessus depuis une journée.

Je fais un simple :

mywin=window.open("");
mywin.location.href=sURL;
mywin.document.title="mytitle";
// suite des opération pour controler ma fenêtre et controler dynamiquement
son contenu...

Tant que mon site etait sur file system, ça marchait parfaitement et depuis
que je l'ai porté chez mon hébergeur, ça ne marche plus.
Le seule différence est sURL qui etait de la forme file: et qui devient
http:.
Dans le cas http, après l'affection de sURL qui charge normallement la
fenêtre, ça ne marche plus du tout (erreur Javascript) comme si mywin
n'était plus le bon handle de fenêtre
Merci à ceux qui auraient des idées.

Laurent


C'est normal je pense, c'est un problème de sécurité.
Le navigateur considère que ta première page en ouvre une deuxième qui
n'appartient pas au même site, donc pour empêcher tout problème de
sécurité il n'autorise pas ton script à toucher à ta deuxième page.
Au vo de ton commentaire, j'ai l'impression que dans ta première page
tu as tout ce qu'il faut comme infos pour savoir quoi écrire dans ta
deuxième page. Enlève donc sURL, et fais plutôt comme ça :


mywin = window.open();
mydoc = mywin.document;
mydoc.open();
mydoc.write("<html><title>Mon Titre</title><body>");
mydoc.write("Ma Page ...");
mydoc.write("</body></html>");
mydoc.close();


@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
laurent.vinesse
Effectivement ça marche bien.
Ca n'a pas été une partie de plaisir de générer ainsi le contenu de cette
page popup assez complexe, d'autant que la page qui porte le javascript est
elle même générée via un template...

grand merci en tous cas.

Laurent.

"O.L." a écrit dans le message news:

laurent.vinesse avait prétendu :
Ca semble tout bete mais je bute la dessus depuis une journée.

Je fais un simple :

mywin=window.open("");
mywin.location.href=sURL;
mywin.document.title="mytitle";
// suite des opération pour controler ma fenêtre et controler
dynamiquement


son contenu...

Tant que mon site etait sur file system, ça marchait parfaitement et
depuis


que je l'ai porté chez mon hébergeur, ça ne marche plus.
Le seule différence est sURL qui etait de la forme file: et qui devient
http:.
Dans le cas http, après l'affection de sURL qui charge normallement la
fenêtre, ça ne marche plus du tout (erreur Javascript) comme si mywin
n'était plus le bon handle de fenêtre
Merci à ceux qui auraient des idées.

Laurent


C'est normal je pense, c'est un problème de sécurité.
Le navigateur considère que ta première page en ouvre une deuxième qui
n'appartient pas au même site, donc pour empêcher tout problème de
sécurité il n'autorise pas ton script à toucher à ta deuxième page.
Au vo de ton commentaire, j'ai l'impression que dans ta première page
tu as tout ce qu'il faut comme infos pour savoir quoi écrire dans ta
deuxième page. Enlève donc sURL, et fais plutôt comme ça :


mywin = window.open();
mydoc = mywin.document;
mydoc.open();
mydoc.write("<html><title>Mon Titre</title><body>");
mydoc.write("Ma Page ...");
mydoc.write("</body></html>");
mydoc.close();


@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com




Avatar
O.L.
laurent.vinesse vient de nous annoncer :
Effectivement ça marche bien.
Ca n'a pas été une partie de plaisir de générer ainsi le contenu de cette
page popup assez complexe, d'autant que la page qui porte le javascript est
elle même générée via un template...


Si j'étais à ta place, je tournerais ça à mon avantage : fais en sorte
que ce soit ton "template" qui s'occupe de transformer ton beau code
HTML en argument de fonction javascript, à la volée. Je sais que ça
marche super avec PHP, maintenant tout dépend de ce qu'est ton
template, je n'y connais rien là dedans, je ne suis même pas bien sûr
de savoir ce que veut dire ce mot ...

Exemple en PHP :
...
mydoc.write("<?php $f = fopen('monCodeHtml.htm', 'r'); $code =
fread($f, 10E6); fclose($f); echo mysql_escape_string($code); ?>");
...

grand merci en tous cas.


De rien ...

@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
laurent.vinesse
Bonjour,
en fait mon template ce n'est pas PHP, mais XSLT.
Je n'utilise pas PHP pour génèrer des pages dynamiques sur serveur
mais je génère celles-ci en statique en batch a partir d'un flux XML.
Comme XSLT est lui-même XML, il n'aime pas les < > ou "qui sont dans des
chaînes en dur
j'ai du donc tout remplacer par des entités type &gt; &lt;

Encore merci.


Effectivement ça marche bien.
Ca n'a pas été une partie de plaisir de générer ainsi le contenu de
cette


page popup assez complexe, d'autant que la page qui porte le javascript
est


elle même générée via un template...


Si j'étais à ta place, je tournerais ça à mon avantage : fais en sorte
que ce soit ton "template" qui s'occupe de transformer ton beau code
HTML en argument de fonction javascript, à la volée. Je sais que ça
marche super avec PHP, maintenant tout dépend de ce qu'est ton
template, je n'y connais rien là dedans, je ne suis même pas bien sûr
de savoir ce que veut dire ce mot ...

Exemple en PHP :
...
mydoc.write("<?php $f = fopen('monCodeHtml.htm', 'r'); $code > fread($f, 10E6); fclose($f); echo mysql_escape_string($code); ?>");
...

grand merci en tous cas.


De rien ...

@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com