web-dev-qa-db-fra.com

comment afficher le titre de la fenêtre en utilisant window.open ()?

Je veux ouvrir une nouvelle fenêtre en utilisant:

window.open('<myfile>.pdf','my window','resizable,scrollbars');

La nouvelle fenêtre s'ouvre, mais le titre de la fenêtre ne correspond pas à "Ma fenêtre" . Qu'est-ce qui pourrait mal se passer?

21
user811433

Si le domaine est identique, vous pouvez modifier le titre de la nouvelle fenêtre.

 <script type="text/javascript">
    var w = window.open('http://localhost:4885/UMS2/Default.aspx');
    w.document.title = 'testing';
 </script>
30
Muhammad Shoaib

Voici ma solution, s'il vous plaît vérifier ceci:

var myWindow = window.open('<myfile>.pdf','my window','resizable,scrollbars');
myWindow.document.write('<title>My PDF File Title</title>');

J'espère pouvoir vous aider.

7
maniootek

L'argument "title" de JavaScript est une variable à utiliser dans JavaScript. Le titre réel écrit en haut de la fenêtre provient normalement de la balise HTML <title>, mais vous ne l'avez pas puisque vous affichez un fichier PDF.

4
Blazemonger

Si la nouvelle fenêtre contient un fichier (PDF par exemple) sous la forme d’une URL, il est possible que la page ne comporte pas de balise "head" .

Vous devez en ajouter un avant de modifier/ajouter le titre.

jQuery:

var w = window.open('/path/to/your/file.pdf');// or any url
$(w.document).find('html').append('<head><title>your title</title></head>');

Native js:

var w = window.open('/path/to/your/file.pdf');// or any url
w.document.getElementsByTagName('html')[0]
   .appendChild(document.createElement('head'))
   .appendChild(document.createElement('title'))
   .appendChild(document.createTextNode('your title'));

Maintenant, si la page est longue à charger, vous pouvez ajouter une surveillance en charge, puis un délai d'attente. Dans mon cas, j'ai dû coder comme ça:

var w = window.open('/path/to/your/file.pdf');// or any url
w.onload = function(){
    setTimeout(function(){
       $(w.document).find('html').append('<head><title>your title</title></head>');
    }, 500);
} // quite ugly hu !? but it works for me.
3
Louis Perrin

Le code ci-dessous me convient sur Mozilla Firefox, IE 11 et Google Chrome. 

var winUrl = 'target URL that needs to open in new window';     

var _newWindow = window.open(winUrl, "_newWindow");

_newWindow.document.title = "My New Title";
1
sameer Memon

La seule façon dont cela a fonctionné dans mon cas a été d'utiliser setTimeout comme ceci:

var mapWin = window.open('', '_blank', ''); // Opens a popup   

setWindowTitle(mapWin) // Starts checking

function setWindowTitle(mapWin)
{
    if(mapWin.document) // If loaded
    {
        mapWin.document.title = "Oil Field Map";
    }
    else // If not loaded yet
    {
        setTimeout(setWindowTitle, 10); // Recheck again every 10 ms
    }
}
1
Leniel Maccaferri

Modifier le titre du pdf dans la fenêtre récemment ouverte

    function titlepath(path,name){

        //In this path defined as your pdf url and name (your pdf name)

            var prntWin = window.open();
            prntWin.document.write("<html><head><title>"+name+"</title></head><body>"
                + '<embed width="100%" height="100%" name="plugin" src="'+ path+ '" '
                + 'type="application/pdf" internalinstanceid="21"></body></html>');
            prntWin.document.close();
        }

Sur clic

<a onclick="titlepath('your url','what title you want')">pdf</a>
0
Siva Ganesh