как изменить содержимое 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, время: 02:57. |