Предотвратить диалог веб-страницы из нового окна браузера? - PullRequest
0 голосов
/ 31 января 2012

У меня есть открытый диалог веб-страницы. Оттуда, что я хотел бы сделать, это когда пользователь нажимает на ссылку, обновляет содержимое диалога с измененными параметрами строки запроса. Проблема, с которой я сталкиваюсь, заключается в том, что вместо обновления одной и той же веб-страницы новыми параметрами появляется новое окно браузера.

Вот страница, используемая для открытия диалога:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
    function ShowPopup() {
        var popWinFeatures = "dialogWidth: 800px;dialogHeight:600px;center:yes;status:no;scroll:no;resizable:yes;help:no";

        window.showModalDialog("webPageDialog.html","PopUpWin",popWinFeatures);

    }
</script>
</head>
<body>
    <a href="#" id="openWebPageDialog" onclick="ShowPopup()">Click For Modal</a>
</body>
</html>

и это код в диалоговом окне веб-страницы, который пытается обновить веб-страницу с измененными параметрами строки запроса:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="scripts/jquery-1.6.4.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){
        var queryString = "?ab=123";
        var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;

        $('#testLink').attr('href', newURL+queryString);
    });

</script>
</head>
<body>
<a href="#" onclick="" id="testLink" target="_self">Please Click Me</a>
</body>
</html>

Я также пытался использовать window.open и установить window.location. И я также попытался установить window.location.href, но результат был тот же.

В новом окне браузера отображается именно то, что я ожидаю. Это просто не в том же окне.

Мысли

1 Ответ

0 голосов
/ 01 февраля 2012

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

Первым делом было просто сделать немодальное всплывающее окно.Удаление модальной части дало мне поведение в точности так, как я ожидал.Однако в моей ситуации это не сработало по другой причине ... Кажется, что сессионный cookie не был перенесен, что в этом веб-приложении привело бы к отображению страницы входа в систему, прежде чем отобразить правильную страницу.Это показалось мне странным, но у меня не хватило времени, чтобы выяснить, почему это происходит.

Во-вторых (и это решение, с которым я в конечном итоге пошел) было использовать iframe и отображать то, что мне нужно вIFrame.Определенно не мой любимый, но это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...