JQuery Modal Boxes и Iframe

С помощью Java 7 вы можете создать один или несколько «ресурсов» в заявлении try. «Ресурсы» - это то, что реализует интерфейс java.lang.AutoCloseable. Этот ресурс будет автоматически закрыт и конец блока try.

вы можете посмотреть этот и java doc для получения дополнительной информации

private static void printFileJava7() throws IOException {

    try(FileInputStream input = new FileInputStream("file.txt")) {

        int data = input.read();
        while(data != -1){
            System.out.print((char) data);
            data = input.read();
        }
    }
}

Когда блок try заканчивается, FileInputStream будет автоматически закрыт. Это возможно, потому что FileInputStream реализует интерфейс Java java.lang.AutoCloseable. Все классы, реализующие этот интерфейс, могут быть использованы внутри конструкции try-with-resources.

19
задан Mr. Shiny and New 安宇 4 February 2009 в 18:35
поделиться

8 ответов

Fancybox является также другой опцией. Работы так же к РЕДАКТИРОВАНИЮ Thickbox

:

Это появляется после некоторого проигрывания, вокруг которого плагин исходно не поддерживает закрытие Fancybox через дочерний iframe элемент. Я думаю, что это, конечно, достижимо с небольшим усилием (я запустил взламывание вместе что-то здесь , хотя я подчеркиваю, что это было просто POC и не работает кнопкой в iframe, удаляет fancybox обертку отделения из DOM и поэтому не отображается, когда Вы нажимаете на изображение Google снова).I, задаюсь вопросом однако, если iframe является правильными строками для потери работоспособности.

Для добавления пользователя, моя мысль была бы то, что Вы могли подарить пользователю модальную форму как та на сайт Монстра, который Вы получаете при нажатии на 'Sign In'. , После того как Вы нажимаете, добавляют пользователя, выполняют вызов Ajax к Вашему источнику данных для вставки нового пользователя и затем при возврате успеха, Вы могли или инициировать обновление страницы или использовать Ajax для обновления списка.

Для редактирования пользователя, когда-то пользователь выбран, Вы могли выполнить вызов Ajax с идентификатором пользователя для заполнения модальной формы с пользовательскими деталями, полученными от источника данных, когда вызов Ajax возвращает успех. После того как Вы закончили редактировать пользователя, выполните вызов Ajax, чтобы обновить Ваш источник данных и с другой стороны, инициировать обновление страницы или использовать Ajax для обновления списка.

Вместо страницы обновляются или заключительный вызов Ajax в каждом сценарии, Вы могли просто использовать JavaScript/jQuery для обновления списка / детали списка, в зависимости от того, был ли пользователь добавлен или отредактирован, соответственно.

9
ответ дан 30 November 2019 в 03:08
поделиться

Я нашел решение для меня, оно использует nyroModal. Это поддерживает iframes и закрытие модального через его iframe ребенка с этим кодом.

parent.$.nyroModalRemove();

я собираюсь принять, что ответ Russ Cam дает ему больше представителя, так как его ответ заставил меня думать много о том, как это собирается работать и в конечном счете заставило меня найти ответ.

1
ответ дан 30 November 2019 в 03:08
поделиться

Похоже, вы уже нашли ответ, но в интересах других вы можете закрыть реализацию FancyBox в iFrame, используя следующий код JavaScript в iFrame:

parent.$.fn.fancybox.close();
16
ответ дан 30 November 2019 в 03:08
поделиться

Вы попробовали ThickBox?

0
ответ дан 30 November 2019 в 03:08
поделиться

parent. $. Modal.close (); работает с простым модальным плагином.

3
ответ дан 30 November 2019 в 03:08
поделиться

Ниже приведено базовое диалоговое окно, загружающее содержимое в iFrame с последующим закрытием диалогового окна из iFrame.

Обратите внимание, что для иллюстрации у меня есть два фрагмента кода. Первый помечен как file1.html. Второй вы должны назвать «myPage.html», если вы хотите, чтобы он работал, и поместите его в тот же каталог, что и первый файл.

Обратите внимание, что вызов закрытия диалогового окна может использоваться другими способами в зависимости от желаемой функциональности. Например, другим примером может быть успешная отправка формы.

Создайте файлы локально в вашей системе, откройте file1.html и попробуйте.

file1.html

<html>
    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/base/jquery-ui.css"/>
    <script type="text/javascript">
      $(document).ready(function() {
            $("#modalDiv").dialog({
                modal: true,
                autoOpen: false,
                height: '180',
                width: '320',
                draggable: true,
                resizeable: true,   
                title: 'IFrame Modal Dialog'
            });
            $('#goToMyPage').click(
                function() {
                    url = 'myPage.html';
                    $("#modalDiv").dialog("open");
                    $("#modalIFrame").attr('src',url);
                    return false;
            });                 
      });
    </script>
    </head>
    <body>
        <a id="goToMyPage" href="#">Go to My Page</a>
        <div id="modalDiv"><iframe id="modalIFrame" width="100%" height="100%" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="auto" title="Dialog Title"></iframe></div>
    </body>
</html>

myPage.html

<html>
    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/base/jquery-ui.css"/>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#clickToClose').click(
                function() {
                    window.parent.$("#modalDiv").dialog('close');
                    return false;
            });
            // uncomment and use the below line close when document is ready (no click action by user needed)
            // the same call could be put elsewhere depending on desired functionality (after successful form submit, etc.)
            // window.parent.$("#modalDiv").dialog('close');                    
        });
    </script>
    </head>
    <body>
        <a id="clickToClose" href="#">Click to close.</a>
    </body>
</html>
13
ответ дан 30 November 2019 в 03:08
поделиться

Мой FrameDialog позволяет это сделать, он по сути расширяется на Dialog... если вы используете тот же домен, вы должны быть в состоянии вызвать $.FrameDialog.close(), хотя, если вы перенаправляете, вы можете просто перенаправить родителя. window.parent.location подойдет.

http://plugins.jquery.com/project/jquery-framedialog

0
ответ дан 30 November 2019 в 03:08
поделиться

ПРИВЕТ, Всем, у кого есть проблемы с закрытием Fancy Box iFrame при ручной установке Fancy Box в Wordpress 3.0:

Используйте эту ссылку в вашем iframe:

<a href="#" onClick="parent.jQuery.fancybox.close();" title="Close window">close fancybox</a>

Это работает :)

0
ответ дан 30 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: