Member 13605567 Ответов: 1

Ajax не выполняет другие страницы javascript


I been researching for a long time and i'm so confused I read that you have to use the eval() function so plain ajax can recognize and execute the JavaScript on the other page I read thru a lot of sites but there is rarely no info on this or no examples that makes sense to me so can any one add the right code to my code to get this to work. I'm a visual learner.


index.php


<script>
var xhr= new XMLHttpRequest();
xhr.onreadystatechange= function(){
    if(xhr.readyState === 4){
        document.getElementById('ajax').innerHTML= xhr.responseText;
    }
};
xhr.open('POST','x.php');

function startAjax(){
    xhr.send();
document.getElementById('hide_button').style.display= 'none';
    }
    </script>
    <body>
    <button id='hide_button' onclick='startAjax()'>Start</button>
    <div id='ajax'></div>
    </body>


x.php


<script>
alert('js is executed');
</script>

<h1>Radom text</h1>


Что я уже пробовал:

Я продолжаю спрашивать на многих сайтах, но никто не хочет мне помочь, как будто они не знают, как это сделать, или они не изменяют мой код, чтобы показать, как это можно сделать. Код работает он просто не выполняет вызов js на другой странице x.php-да.

1 Ответов

Рейтинг:
0

Karthik_Mahalingam

обратитесь к этому
Страница1

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script>
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                var response = xhr.responseText; 
                document.getElementById('ajax').innerHTML = response;
                setTimeout(function () {
                    var script = document.getElementById('ajax').getElementsByTagName('script')[0];
                    if (script) {
                        var js = script.innerText;
                        eval(js);
                    } 
                }, 100)
                
            }
        };
        xhr.open('get', 'htmlpage2.html');

        function startAjax() {
            xhr.send();
            document.getElementById('hide_button').style.display = 'none';
        }
    </script>
</head>
<body>
    <button id='hide_button' onclick='startAjax()'>Start</button>
    <div id='ajax'></div>
</body>


</html>


Страница 2
<script>
    alert('js is executed');
</script>

<h1>Radom text</h1>


Member 13605567

Большое вам спасибо, Картик Бангалор, я очень долго пытался это выяснить. Ты единственный, кто знает, что я искал, спасибо.

Karthik_Mahalingam

добро пожаловать, кстати, удалите старый вопрос.Ajax не выполняет другие страницы javascript[^]

Member 13605567

Хорошо, я сделаю это, но как я могу заставить это выполнить несколько тегов скрипта? Он выполняет только один раздел тега скрипта.