![]() |
переменные в JS
привет! вот такой вопрос, как решить? имеется HTML страница из двух фреймов, к слову frame_1, frame_2 и страница-контейнер этих фреймов, к слову main. Нужно сделать так, чтобы скрипт на JS из фрейма frame_1 передал параметр в main, а после, ну когда frame_2 загрузиться, чтобы он взял этот параметр из main. сделал так но ничего не работет:
// frame_1 // передал фрейму main число num var num=777; window.parent.set_num(num) // main var xxx=0; alert(xxx); // выводит: 0 function set_num(num) { alert(xxx); // выводит: 0 xxx=num; alert(xxx); // выводит: 777, то есть присвоилось то что передал } alert(xxx); // опять вывело: 0 function get_num() { window.frames['frame_2'].document.form.text.value=num; } // frame_2 <body onLoad="window.parent.get_num()"> // получил не 777 а 0. то есть хочу присвоить элементу формы тот параметр котороый храниться в main, тот что ему передал frame_1. как можно решить эту задачку? думаю понятно что мне нужно... |
Что пишет? Какая ошибка.
|
ошибка в том, что когда frame_2 получает переменную, то получает число 0 а не 777, хотя мне нужно 777, то число что передал frame_1
|
JS вообще тяжел с работой в разных документах. Задавай переменные как window.document.var_name=value;
|
Вложений: 1
Позвольте я прямо по вашему коду прокомментирую ошибки (курсивом):
// main var xxx=0; alert(xxx); // выводит: 0 Правильно, оно и есть 0 function set_num(num) { alert(xxx); // выводит: 0 Естественно, мы ему м присваивали 0 выше xxx=num; alert(xxx); // выводит: 777, то есть присвоилось то что передал Раз писвоилось значит работает ведь? } alert(xxx); // опять вывело: 0 Правильно, мы же вначале присвоили именно 0, а функцию присвоения еще не вызвали Вобщем я все подчистил и в примерчик загнал. |
да, сработало... спасибо, только, честно говоря, я не врубился чем твой код отличается от того что я написал... вроде то же самое всё делалось, тот передал, тот получал после... хоть и алерт выводил 0, но когда второй фрейм запрашивал число, то функция присвоения ведь уже происходила до этого, нет так?
|
Наздоровье.
Ничем не отличается практически, просто подчищен и все лишенее убрано. Я не знаю что у Вас не работало, Вы же не выложили полного кода, скорее всего Вы не правильно обращаетесь к элементу формы (window.frames['frame_2'].document.form.text.value=num;)... |
| Часовой пояс GMT +4, время: 10:42. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.