IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   переменные в JS (https://www.imho.ws/showthread.php?t=68675)

nemra 17.09.2004 09:09

переменные в 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. как можно решить эту задачку? думаю понятно что мне нужно...

RaZEr 17.09.2004 10:48

Что пишет? Какая ошибка.

nemra 17.09.2004 10:50

ошибка в том, что когда frame_2 получает переменную, то получает число 0 а не 777, хотя мне нужно 777, то число что передал frame_1

RaZEr 17.09.2004 12:44

JS вообще тяжел с работой в разных документах. Задавай переменные как window.document.var_name=value;

Hubbitus 17.09.2004 13:20

Вложений: 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, а функцию присвоения еще не вызвали

Вобщем я все подчистил и в примерчик загнал.

nemra 18.09.2004 12:10

да, сработало... спасибо, только, честно говоря, я не врубился чем твой код отличается от того что я написал... вроде то же самое всё делалось, тот передал, тот получал после... хоть и алерт выводил 0, но когда второй фрейм запрашивал число, то функция присвоения ведь уже происходила до этого, нет так?

Hubbitus 18.09.2004 18:51

Наздоровье.
Ничем не отличается практически, просто подчищен и все лишенее убрано.
Я не знаю что у Вас не работало, Вы же не выложили полного кода, скорее всего Вы не правильно обращаетесь к элементу формы (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.