как изменить содержимое frame из jQuery
Помогите разобратся.
Собственно есть следующий фреймсет ... <script> // здесь jQuery $(document).ready(function(){ $('#a').attr('src',url+'a.html'); // работает }); </script> <frameset frameborder="1" rows="*,115,35"> <frame name="a" id = "a" src=""> <frame name="b" id = "b" src="b.html"> <frame name="c" id = "c" src="c.html"> </frameset> ... в фреймах в каждом *.html есть <div id=text></div> в который и нужно подставлять некий текст. Как мне обращатся из jQuery к <div id=text> в каком нибудь из этих фреймов? Пробую $('#b\\.text').html() = 'test string'; , не работает var $frametmp = $('#b').contents().find("body #text"); $frametmp.html() = "test string"; //не работает... |
Попробуй так
var frametmp = $("#text");
frametmp.html() = "test string";
Хотя лучше не так, а так
var frametmp = $("#text");
frametmp.html("test string");
|
нет, не работает.
$('#b').contents().find('#text').html() = "test test"; тоже неработает... |
Кажись с фреймами jquery не работаtт, поискал чучуть в гугле, нашёл тока это
var firstframe=window.parent.frames[0]- это так выбирается первый фрейм в наборе, то значит придётся тебе без библы писать:) |
Цитата:
$('#b').contents().find('#text').html("test test");
|
Нет, не работает. Похоже придется без библы.
|
работает с фреймами)
попробуй: Цитата:
|
Нет. не работает!
<html>
<head>
<script type="text/javascript" src="js/jquery-1.4.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
$("#b").ready(function(){
$("#b").contents().find("#text").html("test test");
});
});
</script>
<iframe id = "a" src="a.html"></iframe>
<iframe id = "b" src="a.html"></iframe>
<iframe id = "c" src="a.html"></iframe>
</body>
</html>
a.html <html> <head> </head> <body> <div id="text">a</div> </body> </html> |
пусть другие попробуют:
<html>
<head>
<title>12345</title>
<script type="text/javascript" src="jquery.min.js"></script>
<iframe src="/test.html" id="fr"></iframe>
<script>
$("#fr").ready(function(){
alert($("#fr").contents().find("#tt").html());
$("#fr").contents().find("#tt").html("12345678");
})
</script>
</body>
</html>
test.html=> <html> <title>12345</title> <body></body> <head><div id="tt">testest</div></head> </html> jQuery JavaScript Library v1.3.2 у меня алерт выскакивает и текст меняется) add: в фф работает. в опере нет( |
Конечно автору поста это уже не поможет. Но Гугл этот топик выдает в первых строках поиска и возможно кому будит полезно. jQuery функции по мимо селектора можно вторым параметром передать контекст исполнения (То есть в данном случае объект документа нужного фрейма). Выглядеть будит это примерно так.
$('#text', window.frames['d'].document).text('Test string');
Если требуется в каждом фрейме добавлять текст то нужно перебрать фреймы в цикле.
var
arrFrames = [].slice.call(window.frames),
frame = null;
while ( frame = arrFrames.shift() ) {
$('#text', frame.document).text('Test string');
}
|
| Часовой пояс GMT +3, время: 17:22. |