Qual è il modo corretto di utilizzare window.opener di Javascript?
-
28-10-2019 - |
Domanda
Ho creato una finestra popup e in essa vorrei utilizzare una funzione che ho creato nella finestra genitore.Ho provato a utilizzare window.opener.parentFunction () ma per conoscere l'avail.Qualcun altro ha avuto questo problema?Ecco come appare il mio codice.
function parentFunction(){
alert('testing');
}
function print(){
var new_win = window.open('','name','height=400,width=500');
var output = "<html><head></head><body><table>\n";
for (i = 0; i < 10; i++) {
output += "<td onclick='window.opener.parentFunction()'>"+i+"</td>";
}
output += "</table></body></html>\n";
new_win.document.write(output);
}
* Funziona.Grazie ragazzi.
Soluzione
Ci sono molti problemi con il tuo codice.Ho messo insieme una demo funzionante qui .
HTML
<button id="clickMe">Click me</button>
JavaScript
window.onload = function() {
function parentFunction() {
alert('testing');
}
window.parentFunction = parentFunction;
var years = [1, 2, 3, 4, 5, 6];
function print() {
var new_win = window.open('', 'name', 'height=400,width=500');
//var cols = this.getCols();
var cols = 2;
var output = "<html><head></head><body><table>";
var cell_count = 1;
for (i = 0; i < years.length; i++) {
if (cell_count === 1) {
output += "<tr>";
}
output += "<td onclick='window.opener.parentFunction();'>" + years[i] + "</td>";
cell_count++;
// end the row if we've generated the expected number of columns
// or if we're at the end of the array
if (cell_count > cols || i === years.length - 1) {
output += "</tr>\n";
cell_count = 1;
}
}
output += "</table></body></html>";
new_win.document.write(output);
}
document.getElementById('clickMe').onclick = print;
};
-
years
non è stato definito -
this.getCols()
non è stato definito -
parentFunction
(probabilmente) non era visibile nell'ambito diwindow
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow