Манипуляции внутри созданного окна с помошью jQuery
Можно ли как то с помощью jQuery манипулировать с вновь созданным окном (window.open):
$("#link").click(function() { var newWin = window.open("url", "Wnd"); newWin.focus(); function change(){ $("a").css("color","red"); } newWin.change() }); и так и сяк крутился, не хочет работать; а может это вообще не достижимо? |
В новом окне не подключен же jQuery? Возможно, так заработает:
$("#link").click(function() { var newWin = window.open("url", "Wnd"); newWin.focus(); $("a", newWin.document).css("color","red"); }); при условии, что все в пределах одного домена происходит. |
пока на домене нет возможности протестировать, попробовал просто со статичным файлом
var newWin = window.open(this.href, "Wnd");- не работает ;(. Да все будет на одном домене, jquery будет подключен и в новом окне тоже. Это имеет значение? |
а что если newWin.$ = $; ?
или newWin.window.$ = $; |
а забыл, надо же дождаться загрузки нового окна:
$("#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(…) не заработали. |
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,
я предлагаю как бы передать ф-цию $ (jQuery) вновь созданному окну. Насколько я знаю у новых окон (равно как и у фреймов) своя область видимости. ну и далее в этом новом окне работать с jQuery |
Только в FF и работает :) щас подумаю, как сделать
|
В осле еще выскакивет "Error "null" есть null или не является объектом" А против этого есть лекарство?
|
Не хотят они никак 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; }); |
Часовой пояс GMT +3, время: 02:19. |