ما هي الطريقة الصحيحة لاستخدام نافذة جافا سكريبت.فتاحة?

StackOverflow https://stackoverflow.com/questions/5392320

سؤال

لقد قمت بإنشاء نافذة منبثقة وفيها أود استخدام وظيفة قمت بإنشائها في النافذة الرئيسية.لقد حاولت استخدام النافذة.فتاحة.وظيفة الوالدين () ولكن لمعرفة جدوى.هل واجه أي شخص آخر هذه المشكلة?وهنا ما يبدو رمز بلدي مثل.

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

* حصلت عليه العمل.شكرا يا رفاق.

هل كانت مفيدة؟

المحلول

هناك مجموعة من المشاكل مع التعليمات البرمجية الخاصة بك.لقد وضعت معا تجريبي العمل هنا.

أتش تي أم أل

<button id="clickMe">Click me</button>

جافا سكريبت

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 لم يتم تعريفه
  • this.getCols() لم يتم تعريفه
  • parentFunction كان (ربما) غير مرئي في window النطاق
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top