ما هي الطريقة الصحيحة لاستخدام نافذة جافا سكريبت.فتاحة?
-
28-10-2019 - |
سؤال
لقد قمت بإنشاء نافذة منبثقة وفيها أود استخدام وظيفة قمت بإنشائها في النافذة الرئيسية.لقد حاولت استخدام النافذة.فتاحة.وظيفة الوالدين () ولكن لمعرفة جدوى.هل واجه أي شخص آخر هذه المشكلة?وهنا ما يبدو رمز بلدي مثل.
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
النطاق
لا تنتمي إلى StackOverflow