| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как вызвать функцию из другого фрейма? |
| Автор: Непрофессионал 29.11.2003, 16:23 |
| Прошу подсказать (если кто знает) - ситуация такая - есть страница из 2-х фреймов, в одном из них выписаны функции (JavaScript) А управление этими функциями нужно осуществлять из другого фрейма. Однако нигде не нашёл, как вызвать именно функцию. Если в форме во втором фрейме написано что-то вроде onClick = "function_of_first_frame();" (там разные имена функций) или onClick = "parent.first_frame.function_of_first_frame();" MSIE выдаёт ошибку "нулль или не является обьектом" |
| Автор: Dr.Death 29.11.2003, 18:03 | ||
Попробуй
|
| Автор: MuToGeN 30.11.2003, 05:43 |
| > onClick = "javascript:parent.first_frame.function_of_first_frame();" Не, это точно не то. javascript: - это что-то типа указания протокола в ссылках, так же как http:, ftp: или mailto: |
| Автор: Непрофессионал 30.11.2003, 11:15 | ||||
| Проверил, вот так: onClick =
работает, при этом функция "видит" переменные, заданные в том же фрейме, что и она, но не видит их, если их имена передавать как параметры, то есть
невозможно, в то время как задать функцию function function_of_first_frame("Х"){alert(value_of_first_frame+"Х")}; возможно, и переменную она (вызванная из др. фреймов) видеть будет |
| Автор: Alx 7.12.2003, 10:35 | ||
| Интересно, а я вот мо молодости весной хотел создать такую программку: В первом маленьком фрейме поля: URL Цвет бэкграунда Цвет текста и т.д. Добрый юзверь выберает, что хочет и таким образом бродит по рунету и меняет странички. Зашёл на яндекс, сделал розовый фон. Разве не щщщастье? Так было бы что-то вроде
Что-то вроде этого, я уже не помню. Можеть здесь и есть ошибки, но когда я пытался это сделать, ничего не фурычило, я много менял вариантов! Вот интересно, можно ли такое сделать? |
| Автор: Secandr 7.12.2003, 11:09 |
| У меня так и не получилось вызвать функцию, но без проблем можно менять свойства какого либо объекта: parent.first_frame.form1.text1.value='bla.bla.alb.alb'; Так что можно просто повесить onCange на form1.text1 и вызывать функцию P.S. Чистой воды извращение |
| Автор: Alx 7.12.2003, 11:23 |
| Эт уж точно...) |
| Автор: Непрофессионал 7.12.2003, 16:54 |
| У меня так и не получилось вызвать функцию Возможно, зависит от браузера (??) P.S. Чистой воды извращение Это почему собственно? |
| Автор: Alx 7.12.2003, 18:15 |
| Ну потому что извращение!) Чтобы вызваь функцию, надо изменить свойство ни в чем неповинного объекта, а потом написать, чтобы при при изменении свойства ентого объекта вызывалась функция! разве не извращение?)) |
| Автор: Непрофессионал 8.12.2003, 01:39 | ||
Если очень надо, то чем плохо, однако у меня так не получилось, MSIE реагирует только на такие onChange, которые пользователь производит мышью, или набирает с клавиатуры! (может, что-то не так сделал) |
| Автор: Alx 11.12.2003, 10:33 |
| Я не знаю, что Вы сделали), но по-моему всё должно нормально работать... попробуйте с фокусом для type=text, действие onfocus... т.е. parent.first_frame.form1.text1.focus()'; <input type="text" value="*" onfocus="func();" style="visibility:hidden;"> Кстати, я воть не очень хорошо помню на счёт взаимодействия фреймов, но разве перед parent не должно быть window или document...? |
| Автор: Secandr 11.12.2003, 16:22 |
| нет перед parent ничего не ставиться. |