Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.09.2013, 19:22
Интересующийся
Отправить личное сообщение для andrewinc Посмотреть профиль Найти все сообщения от andrewinc
 
Регистрация: 19.09.2012
Сообщений: 10

Два iframe в dialog не дружат. Сбрасывается содержимое
Возникла проблема:
При создании двух и более диалоговых окон на базе iFrame средствами jQueryUI наблюдается сбрасывание содержимого фрейма.
Что неприемлемо, т.к. в разных диалоговых окнах могут быть открыты разные формочки, часть полей из которых может быть пользователем заполнена.
В качестве примера, код

index.html
<!DOCTYPE html>
<html>
    <head>
        <title>Тест двух диалогов в одном окне</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"/>
        <script type="text/javascript">
            var ifr=function(){
                var file=this.id+'.html', id=this.id+'_dialog';
                var $w=$("<iframe/>").attr({src:file, id:id, title:file, wodth: '100%', height: '100%'}).css({padding:0,margin:0, border: 'none'}).appendTo('body');
                $w.dialog();
            }
            $(function(){
                $("#ifr1, #ifr2").click(ifr)
            })
        </script>
    </head>
    <body>
        <h1>Тест двух диалогов в одном окне</h1>
        <button id="ifr1">Dialog1</button>
        <button id="ifr2">Dialog2</button>
    </body>
</html>


ifr1.html
<!DOCTYPE html>
<html>
    <head>
        <title>iFrame1</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <h1>iFrame1</h1>
        <input id="text1" type="text" value="" placeholder="Введите что-нибудь"/>
    </body>
</html>


ifr2.html
<!DOCTYPE html>
<html>
    <head>
        <title>iFrame2</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <h1>iFrame2</h1>
        <input id="text1" type="text" value="" placeholder="Введите что-нибудь"/>
    </body>
</html>

Или, рабочий код здесь: http://jqueryui.jwork.ru/
Проблема появляется после ввода в текстовое поле одного и второго окна и клику по заголовку противоположного окна (что сейчас не в фокусе), особенно часто при некотором наложении диалогов друг на друга, и при попытке перетащить неактивный диалог (за заголовок окна).
Традиционный вопрос, кто знаетчто происходит? почему это происходит? ну и ключевой - как побороть?
P.S. пробовал в Opera, Chrome, Firefox, Safari везде наблюдается
Ответить с цитированием
  #2 (permalink)  
Старый 15.09.2013, 19:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от andrewinc
wodth
может width ?
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2013, 19:58
Интересующийся
Отправить личное сообщение для andrewinc Посмотреть профиль Найти все сообщения от andrewinc
 
Регистрация: 19.09.2012
Сообщений: 10

Сообщение от рони Посмотреть сообщение
может width ?
действительно, width... но, эта правка никак не влияет на решение проблемы
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2013, 20:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

andrewinc,
при перетаскивании идёт обновление iframe поэтому содержимое сбрасывается
Сообщение от andrewinc
почему это происходит?
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2013, 20:25
Интересующийся
Отправить личное сообщение для andrewinc Посмотреть профиль Найти все сообщения от andrewinc
 
Регистрация: 19.09.2012
Сообщений: 10

Сообщение от рони Посмотреть сообщение
andrewinc,
при перетаскивании идёт обновление iframe поэтому содержимое сбрасывается
а решить как-нибудь эту проблему можно... чтобы iframe не перезапрашивался?
Может в настройках $('xx').dialog() какой-нибудь режим выставить, или может как-нибудь состояние iфрейма можно сохранять а потом восстанавливать?
на крайняк (совсем некрасиво), может влезть в библиотеку и что-нибудь там кастрировать, специально для этих целей (возможно вначале сделав клон $.ui.dialog)?
Ответить с цитированием
  #6 (permalink)  
Старый 16.09.2013, 16:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

andrewinc,
фреймы складывать в конец body с абсолютной позицией
при перемещениях окна, задавать им нужные координаты вставки left и top
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
содержимое iframe defender057 Элементы интерфейса 2 26.06.2013 22:44
изменить содержимое iframe xhugo Общие вопросы Javascript 1 24.03.2012 22:29
Не обновляется содержимое iframe Bas Internet Explorer 0 04.12.2010 19:32