Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2009, 21:20
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

Манипуляции внутри созданного окна с помошью jQuery
Можно ли как то с помощью jQuery манипулировать с вновь созданным окном (window.open):
$("#link").click(function() {
		var newWin = window.open("url", "Wnd");
		newWin.focus();
		function change(){
			$("a").css("color","red");
		}	
		newWin.change()
    });

и так и сяк крутился, не хочет работать; а может это вообще не достижимо?
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2009, 21:26
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В новом окне не подключен же jQuery? Возможно, так заработает:
$("#link").click(function() {
        var newWin = window.open("url", "Wnd");
        newWin.focus();
        $("a", newWin.document).css("color","red");
    });

при условии, что все в пределах одного домена происходит.
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2009, 21:39
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

пока на домене нет возможности протестировать, попробовал просто со статичным файлом
var newWin = window.open(this.href, "Wnd");
- не работает ;(.
Да все будет на одном домене, jquery будет подключен и в новом окне тоже. Это имеет значение?
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2009, 21:50
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

а что если newWin.$ = $; ?
или newWin.window.$ = $;
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2009, 22:17
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

а забыл, надо же дождаться загрузки нового окна:
$("#link").click(function() {
	var newWin = open(this.href, "Wnd");
	newWin.onload = function() {
		$("a", newWin.document).css("color", "red");
	};
	return false;
});

newWin.onload вставил, потому что ни $(newWin.document).ready(…), ни $(newWin).load(…) не заработали.
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2009, 22:21
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

2 Koc не совсем понял, поясни.

$("#link").click(function() {
	var newWin = window.open("url", "Wnd");
	newWin.focus();
	newWin.onload = function() {
		$("a", newWin.document).css("color","red");
	}
	return false;	
});


Octane, вот такая конструкция заработала в Fx. В опере все равно не хочет ссылки перекрашивать. подскажите кроссбраузерное решение
upd. думаем об одном и том же . как же оперу натравить?
и еще момент - может для верности создание нового окна повесить в саму ссылку на onClick? Боюсь что браузеры будут блокировать окно...

Последний раз редактировалось Nubi, 21.09.2009 в 22:25.
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2009, 22:30
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

Nubi,
я предлагаю как бы передать ф-цию $ (jQuery) вновь созданному окну. Насколько я знаю у новых окон (равно как и у фреймов) своя область видимости.

ну и далее в этом новом окне работать с jQuery
Ответить с цитированием
  #8 (permalink)  
Старый 21.09.2009, 22:31
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Только в FF и работает щас подумаю, как сделать
Ответить с цитированием
  #9 (permalink)  
Старый 21.09.2009, 22:35
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

В осле еще выскакивет "Error "null" есть null или не является объектом" А против этого есть лекарство?
Ответить с цитированием
  #10 (permalink)  
Старый 21.09.2009, 23:32
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Не хотят они никак onload выполнять, наверное, тогда выход один: добавить перед </body> для каждого нового окна:
<script type="text/javascript">ready = 1</script>

А из родительского окна уже по таймеру запускать действие:
$("#link").click(function() {
	var newWin = open(this.href, "Wnd");
	(function() {
		if(newWin.ready) {
			$("a", newWin.document).css("border", "10px solid #f00");
		} else {
			setTimeout(arguments.callee, 20);
		}
	})();
	return false;
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод созданного окна во фрейме... glorx (X)HTML/CSS 6 30.01.2013 13:13
закладки с помошью jquery alexander_t jQuery 3 04.11.2008 16:29