Манипуляции внутри созданного окна с помошью 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, время: 00:41. |