Domanda

Ho notato qualcosa di peculiare sulla parola chiave "con" in JavaScript e nella relazione con finestra genitore e figlio, in particolare la finestra.opener. Non l'ho testato dalla finestra genitore, solo il bambino, ma vale la pena notare nell'esempio seguente

Finestra genitore (parent.html):

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

Finestra figlio (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");
}

La parola chiave "con", in questo caso, passa alla finestra genitore e il secondo avviso spara anche un onfocus implicito alla finestra genitore. Non mi rendevo conto che "con" sarebbe passato alla finestra del genitore, ma ora ha senso.

È stato utile?

Soluzione

Questo accade perché window è lo spazio dei nomi globale quando si esegue JavaScript in un browser Web. Quando scrivi:

alert('Hello, World!');

Stai effettivamente chiamando il window.alert metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top