Posso cambiare un valore nella pagina padre JS dal iframe JS?
-
13-09-2019 - |
Domanda
Ho una pagina con 3 iframe e questa pagina carica un file JS che ha
var stayFifty = new Boolean(false);
e una funzione che cambia ciò che fa sulla base di questa booleana.
In un iframe in questa pagina ho una funzione onclick definita come
toggleFifty = function() {
parent.stayFifty = new Boolean(!(stayFifty.valueOf()));
};
aggiunto a un tag img con
onclick="toggleFifty();"
Ma quando clicco sul tag img, la funzione toggleFifty non sembra al fuoco. Credo che questo abbia a che fare con il modo della funzione toggleFifty sta cercando di cambiare la variabile stayFifty. Qualcuno può spiegare come risolvere questo problema e un po 'sul problema ambito?
Ho provato ad utilizzare informazioni provenienti da questo link ma sembra non sto capendo qualcosa.
Soluzione
Ti manca il parent
quando si modifica il valore della variabile stayFifty
:
toggleFifty = function() {
parent.stayFifty = !parent.stayFifty;
};
A proposito, si noti che non è necessario usare costruttore booleano quando si lavora con variabili booleane, e quando si dichiara si può semplicemente utilizzare letterali booleani :
// on your parent page
var stayFifty = false;