За последние 24 часа нас посетили 22952 программиста и 1241 робот. Сейчас ищет 751 программист ...

Доступ к frames внутри DIV

Тема в разделе "JavaScript и AJAX", создана пользователем DeathmasteR, 29 мар 2023.

  1. DeathmasteR

    DeathmasteR Активный пользователь

    С нами с:
    11 июн 2015
    Сообщения:
    24
    Симпатии:
    0
    Здравствуйте. По ряду причин переписал js код с document.write на программное создание элементов (Нужно было, чтобы главный frameset и его содержимое заключались внутри общего DIV(для последующего создания элементов на оверлее)).

    Раньше код прекрасно понимал конструкцию top.frames, но сейчас, т.к структура DOM изменилась top.frames возвращает undefined...

    Вопрос, как получить доступ к frames???

    например, вот это раньше работало:
    Код (Javascript):
    1. if ( top.frames['chat']['chat2'] ) { top.frames['chat']['chat2'].start();  }
    Сейчас структура такова:

    HTML:
    1. <body id="claro" class="claro">
    2. <div id="appLayout"></div>
    3. </body>
    4.  
    frameset с остальными фреймами находится внутри div с id "appLayout":

    Код (Javascript):
    1. jQuery.noConflict();
    2. jQuery(document).ready(function( $ ) {
    3. $('<frameset>', {
    4.     border: 0,
    5.     id: 'super',
    6.     onload: '',
    7.     cols: '65,*'
    8. }).append(
    9.     $('<frame>', {
    10.         name: 'panel',
    11.         noresize: 'noresize',
    12.         scrolling: 'no',
    13.         src: '/panel.php?0.13190476805903018'
    14.     }),
    15.     $('<frameset>', {
    16.         border: 0,
    17.         rows: '30,*,30'
    18.     }).append(
    19.         $('<frame>', {
    20.             src: 'menu.php?' + rnd,
    21.             name: 'player',
    22.             scrolling: 'no',
    23.             noresize: 'noresize'
    24.         }),
    25.         $('<frameset>', {
    26.             border: 3,
    27.             bordercolor: '#758999',
    28.             frameborder: 1,
    29.             framespacing: 3,
    30.             id: 'main-set',
    31.             rows: rows
    32.         }).append(
    33.             $('<frame>', {
    34.                 frameborder: 0,
    35.                 id: 'main',
    36.                 name: 'main',
    37.                 src: main_scr
    38.             }),
    39.             $('<frameset>', {
    40.                 cols: cols,
    41.                 id: 'chat-set'
    42.             }).append(
    43.                 $('<frame>', {
    44.                     name: 'chat',
    45.                     scrolling: 'no',
    46.                     src: '/ch/html/ch_frames.html?' + rnd
    47.                 }),
    48.                 (userTutorial ? '' : $('<frame>', {
    49.                     name: 'online',
    50.                     scrolling: 'no',
    51.                     src: '/ch/html/online.php?' + rnd,
    52.                     frameborder: ''
    53.                 }))
    54.             )
    55.         ),
    56.         (userTutorial ? '' : $('<frame>', {
    57.             id: 'bottomFrame',
    58.             name: 'bottom',
    59.             noresize: 'noresize',
    60.             scrolling: 'no',
    61.             src: '/buttons.php?' + rnd
    62.         })),
    63.         $('<frame>', {
    64.             name: 'refreshed',
    65.             target: '_top',
    66.             frameborder: 0,
    67.             border: 0,
    68.             marginheight: 0,
    69.             scrolling: 'no',
    70.             noresize: 'noresize',
    71.             src: 'refreshed.html'
    72.         })
    73.     )
    74. ).appendTo($('#appLayout'))
    75. });
    Старый код:

    Код (Javascript):
    1. document.write(
    2.    
    3.         '<frameset border="0" onload="if ( top.frames[\'chat\'][\'chat2\'] ) { top.frames[\'chat\'][\'chat2\'].start();  }" cols="65,*">' +
    4.           '<frame name="panel" noresize="noresize" scrolling="no" src="/panel.php?0.13190476805903018">' +
    5.             '<frameset border="0" rows="30,*,30">' +
    6.                 '<frame src="menu.php?' + rnd + '" name="player" scrolling="no" noresize="noresize" />' +
    7.                 '<frameset border="3" bordercolor="#758999" frameborder="1" framespacing="3" id="main-set" rows="' + rows + '">' +
    8.                     '<frame frameborder="0" id="main" name="main" src="'+main_scr+ '" />' +
    9.                     '<frameset cols="' + cols + '" id="chat-set">' +
    10.                         '<frame name="chat" scrolling="no" src="/ch/html/ch_frames.html?' + rnd + '" />' +
    11.                         (userTutorial ? '' : '<frame' + (!Opera ? ' frameborder="0"' : '') + ' name="online" scrolling="no" src="/ch/html/online.php?' + rnd + '" />') +
    12.                     '</frameset>' +
    13.                 '</frameset>' +
    14.                 (userTutorial ? '' : '<frame id="bottomFrame" name="bottom" noresize="noresize" scrolling="no" src="/buttons.php?' + rnd + '" />') +
    15.                 '<frame name="refreshed" target="_top" frameborder="0"  border="0" marginheight=0 scrolling="no" noresize src="refreshed.html">'+
    16.             '</frameset>' +
    17.         '</frameset>'
    18.     );