Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   iframe и собственно скрипт (https://javascript.ru/forum/misc/9709-iframe-i-sobstvenno-skript.html)

PurtCer 01.06.2010 23:37

iframe и собственно скрипт
 
Здравствуйте. Не силен в javascript? решил обратиться к прфессионалам. Есть страница, на ней надо перегружать определенный кусок, но что бы вся страница не перегружалась, хочу реализовать данное действо посредством использования iframe. И отсюда вопрос можно ли сделат так, что бы со страницы в iframe вызвать прцедуры скрипта в родительской основной странице? Я попробовал, что-то не получилось, Может я просто что-то не так сделал или это впринципе невозможно?

B~Vladi 01.06.2010 23:42

Цитата:

Сообщение от PurtCer
Не силен в javascript? решил обратиться к прфессионалам.

Хм... В этом что-то есть:D
window.top - получаем ссылку на родительское окно.

PurtCer 02.06.2010 11:18

"window.top - получаем ссылку на родительское окно." - а можно подробнее. onclick = "window.top.нужная функция" - так, или что-то другое?

B~Vladi 02.06.2010 13:11

В родительском документе определяем функцию:
window.myFnc = function(){}

Из фрейма вызываем её:
window.top.myFnc();

PurtCer 02.06.2010 14:28

Вот спасибо. Вечером буду пробовать.

PurtCer 02.06.2010 23:31

Извиняюсь, за назойливость. Вот код:
map = null;
geoResult = null;
function initialize(){
  map = new YMaps.Map(document.getElementById('YMapsID'));
  map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
  map.addControl(new YMaps.TypeControl());
  map.addControl(new YMaps.ToolBar());
  map.addControl(new YMaps.Zoom());
  map.addControl(new YMaps.MiniMap());
  map.addControl(new YMaps.ScaleLine());
}
window.PoiskMesta = function (value){
  map.removeOverlay(geoResult); 
  // Запуск процесса геокодирования
  var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()}); 
  // Создание обработчика для успешного завершения геокодирования
  YMaps.Events.observe(geocoder, geocoder.Events.Load, window.GeoKod = function () {
  // Если объект был найден, то добавляем его на карту
  // и центрируем карту по области обзора найденного объекта
  if (this.length()) {
    geoResult = this.get(0);
    map.addOverlay(geoResult);
    map.setBounds(geoResult.getBounds());
  }else {
    alert('Ничего не найдено')
  }
}

window.PoiskMesta вызываю из iframe получаю:"Ничего не найдено". Может мне все и переменные сделать цштвщцюпеременные или как тут мне быть?

B~Vladi 03.06.2010 12:47

Цитата:

Сообщение от PurtCer
window.PoiskMesta вызываю из iframe

Я так понимаю проблема решена с вызовом. Теперь берём дебагер и смотрим, что же такое this и почему собственно так.

В следующий раз оформляй код нормально, чтобы можно было прочитать.

PurtCer 03.06.2010 13:14

Да, с дебагером тупанул). Спасибо большое за помощь, думаю теперь я разберусь.


Часовой пояс GMT +3, время: 01:08.