Всплывающий браузер возвращается в родительский браузер после достижения определенной страницы - PullRequest
4 голосов
/ 05 марта 2009

У меня есть всплывающее окно (которое я использовал по необходимости), которое открывается при нажатии на ссылку. У меня есть пользователь, просматривающий серию атрибутов выбора страниц, которые затем отправляются в корзину.

Моя проблема: после того, как пользователь достигнет конца процесса выбора, я хочу закрыть всплывающее окно и отправить запрос обратно в исходный браузер (родительский), чтобы пользователь мог оформить заказ.

Есть идеи, как мне это сделать?

Ответы [ 3 ]

4 голосов
/ 05 марта 2009

Javascript: в дочернем (всплывающем) окне.

window.opener.location = 'page.html";
window.close();

Это то, что вы ищете?

3 голосов
/ 05 марта 2009

Доступ к родительскому окну можно получить с помощью «opener» в JavaScript. Пример:

window.opener.title='hello parent window';

или

window.opener.location.href='http://redirect.address';
0 голосов
/ 22 февраля 2012

Сценарий в моей детской форме:

<script language="JavaScript" type="text/javascript">
    function SetData() {
        // form validation
         // var frmvalidator  = new Validator("myForm");
        // frmvalidator.addValidation("name","req","Please enter Account Name");

        // get the new dialog values
        var str1 = document.getElementById("name").value;
        var winArgs = str1;

        // pass the values back as arguments
        window.returnValue = winArgs;
        window.close();
        document.myForm.submit();
    }
</script>

Скрипт в родительской форме:

<% @account_head= current_company.account_heads.find_by_name("Sundry Debtors")%>
<script type="text/javascript">
    function OpenDialog() {
        var winSettings = 'center:yes;resizable:no;help:yes;status:no;dialogWidth:450px;dialogHeight:200px';

        // return the dialog control values after passing them as a parameter
        winArgs = window.showModalDialog('<%= "/accounts/new?account_head_id=#{@account_head.id} #man" %>', winSettings);

        if(winArgs == null) {
            window.alert("no data returned!");
        } else {
            // set the values from what's returned
            document.getElementById("to_account_auto_complete").value = winArgs;
        }
    }
</script>

Это работа, но не так, как я хочу, если кто-нибудь найдет хорошее решение, предложите.

...