Frage

Ich habe ein Popup-Fenster erstellt und möchte darin eine Funktion verwenden, die ich im übergeordneten Fenster erstellt habe.Ich habe versucht, window.opener.parentFunction () zu verwenden, aber zu wissen, ob es funktioniert.Hat jemand anderes dieses Problem erlebt?So sieht mein Code aus.

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);
}

* Hat es funktioniert.Danke Jungs.

War es hilfreich?

Lösung

Es gibt eine Reihe von Problemen mit Ihrem Code.Ich habe hier eine funktionierende Demo zusammengestellt.

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 wurde nicht definiert
  • this.getCols() wurde nicht definiert
  • parentFunction war (wahrscheinlich) im Bereich window nicht sichtbar

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top