Получение HTML-ответа через чистый JavaScript Ajax-вызов, но не выполняется - PullRequest
2 голосов
/ 07 июня 2019

Я пытаюсь добиться того, чтобы мое приложение-чат-бот было частью другого приложения при вызове через асинхронный вызов JavaScript.Хотя чат-бот сам по себе является самостоятельным приложением.

Я могу получить Html-страницу в ответ на вызов JavaScript Ajax, но содержимое сценария не отображается / выполняется / отображается в браузере.Я пробовал так много решений, которые есть онлайн, включая функцию eval (), но они не работали.Обращайтесь за помощью к сообществу Stack Overflow.

<div id="x"></div>

<script>
    function y() {
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {

                console.log(xmlHttp.responseText);

                /*  Append the fetched content to the 'x' div */
                document.getElementById('x').innerHTML = this.responseText;
            }
        }
        xmlHttp.open('GET', 'http://localhost:port_no/application_Page', true);
        xmlHttp.setRequestHeader('Content-type', 'text/html');
        xmlHttp.send();
    }
    y();
</script>

Что ожидается, что я хочу, чтобы мой чат-бот выглядел как плавающее окно поверх родительского приложения со всемиСвойства HTML, CSS, так что он работает так же, как работает как отдельное приложение. Как это я хочу

1 Ответ

1 голос
/ 07 июня 2019

Вы можете использовать iFrame, указав его атрибут src на конечной точке, которая возвращает содержимое страницы чат-бота.Это приведет к тому, что все HTML / CSS / JavaScript будут правильно отображаться так, как если бы они открывались непосредственно в собственной вкладке или окне браузера.Как следствие, все ваши сценарии будут выполняться правильно.

Стилизованный iFrame может отображаться так, чтобы он плавал над остальной частью вашей веб-страницы по желанию.

<iframe width="560" height="315" src="http://localhost:port_no/application_Page"></iframe>

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

window.open('http://localhost:port_no/application_Page','popUpWindow','height=500,width=400,left=100,top=100,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes')

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