У меня проблема, когда я повторяю это:
echo "Logged in! <script> alert('hello'); </script>";
Сообщение "Записан!" появляется, но не предупреждение. Как я могу исправить это, чтобы получить предупреждение? Я не могу использовать header();
потому что я уже искал все!
Я также попробовал несколько вещей:
echo "Test message <script> window.location.href= 'index.php';"
То же самое снова, тестовое сообщение было echo'd, но сценарий не был запущен.
Я надеюсь, что кто-то может мне помочь!
ПРИМЕЧАНИЕ. Весь этот код находится в XML файле, и я получаю этот ответ и помещаю его в div. Таким образом, скрипт находится в сообщении, которое я получаю с помощью responseXML и выводят данные в div.
Вопрос: У меня есть в 1 предложении: Как вы можете запустить javascript-функцию в ajax-вызове без jquery?
Ваш PHP выглядит отлично, но вам может потребоваться изменить способ сбора JavaScript.
Рассмотрим этот пример: http://jsfiddle.net/0vcewvkc/1/
Если вы только собираете только JavaScript, вы можете обернуть ответ в теге jQuery ($()
), а затем добавить его в свой документ.
$("#go").click(function() { // call the function here
// your ajax code would go here, but either way you will end up with a string of JavaScript
var response = '<script>alert("hi");</' + 'script>';
// use jQuery to append this script to your document body, like so:
$(response).appendTo(document.body)
});
Чтобы сделать это без jQuery, конец вашего вызова AJAX будет иметь следующий код:
var response = 'alert("hi");'; // note that we have removed the <script> tag
var s = document.createElement("script");
s.innerHTML = response;
document.getElementsByTagName('body')[0].appendChild(s);
Я предполагаю, что вы вызываете этот скрипт через ajax после того, как страница уже загружена. В этом случае неудивительно, что сценарий не запущен, потому что браузер запускает сценарии, когда он читает их, и не находится в режиме ожидания для появления другого тега скрипта.
Если это так, вы можете решить это, добавив какой-либо прослушиватель событий или даже лучше, вызвать нужную функцию в конце ответа ajax.
попробуйте следующее, это должно работать
<?php
echo 'Logged in ';
?>
<script> alert("hello")</script>;
<?php
// the rest of your php code
?>