Question

J'ai remarqué quelque chose de particulier à propos du mot-clé "with" en javascript et de la relation entre les fenêtres parent et enfant, en particulier window.opener.Je n'ai pas testé cela à partir de la fenêtre parente, juste l'enfant, mais cela vaut la peine de le noter dans l'exemple ci-dessous -

Fenêtre parent (Parent.html):

// global scope
function ParentFunc() { alert("I am a parent function"); }

Fenêtre enfant (Child.html):

// global scope
var baseWin = window.opener;

// "this" keyword corresponds to Child.html when function below is called
function Child_Onclick_Func()
{
  alert("Hi, from Child");
  with (baseWin)
  {
    ParentFunc();
    alert("Hi, from Parent");
  }
  alert("Hi, back to Child");
}

Le mot-clé "with", dans ce cas, bascule vers la fenêtre parente et la seconde alerte déclenche également un focus implicite sur la fenêtre parente.Je ne savais pas que "avec" passerait à la fenêtre parente, mais c'est logique maintenant.

Était-ce utile?

La solution

Cela se produit parce que window est l'espace de noms global lors de l'exécution de javascript dans un navigateur Web.Lorsque vous écrivez:

alert('Hello, World!');

Vous appelez en fait la méthode window.alert.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top