Откройте новое окно браузера в GWT, содержащее виджет / панель - PullRequest
3 голосов
/ 10 июня 2010

Я знаю, что вы можете открыть новое окно браузера, используя функцию Window.open (), направляя его на определенный URL.Однако возможно ли открыть новое окно браузера, содержащее панель GWT?И если это так, может кто-нибудь показать пример этого?

1 Ответ

1 голос
/ 10 июня 2010

Вот моя идея. Я реализовал это на чистом JavaScript, но если это возможно в JS, это также возможно с GWT!

parent.html:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Parent page</title>
<script type="text/javascript">
    function openChild() {
            window.mychild = window.open("print.html");
            setTimeout('setContent();', 2000);
    }
    function setContent() {
            window.mychild.document.body.innerHTML = 
               '<b>Here is your dynamically generated print content</b>';
               // This could be produced by your main GWT module.
    }
</script>
</head>
<body>
    <a href="#" onclick="javascript:openChild()">Open child window</a>
</body>
</html>

print.html:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Print view</title>
</head>
<body>
    One moment please...
</body>
</html>

Обратите внимание, что я использовал тайм-аут. Это не идеально, потому что если (очень маленький) файл print.html будет загружаться дольше, он будет перезаписывать динамически установленное содержимое.

Полагаю, решение можно было бы оптимизировать (но убедитесь, что дочернее окно выбрано из того же источника, иначе вы столкнетесь с проблемами "политики одинакового происхождения").

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