Javascript не работает, когда echo'd по php

0

У меня проблема, когда я повторяю это:

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?

Теги:
alert

3 ответа

0
Лучший ответ

Ваш 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);
  • 0
    Вам нужно сделать это с помощью jquery? Потому что я уже сделал все с нормальным JavaScript ....
  • 0
    @Nytrix Я только что обновил свой ответ опцией не-jQuery. Вы можете увидеть это в действии здесь: jsfiddle.net/0vcewvkc/2 . Я сделал нажатие кнопки с помощью jQuery, но внутренний код должен работать без него.
Показать ещё 2 комментария
1

Я предполагаю, что вы вызываете этот скрипт через ajax после того, как страница уже загружена. В этом случае неудивительно, что сценарий не запущен, потому что браузер запускает сценарии, когда он читает их, и не находится в режиме ожидания для появления другого тега скрипта.

Если это так, вы можете решить это, добавив какой-либо прослушиватель событий или даже лучше, вызвать нужную функцию в конце ответа ajax.

  • 0
    извините, это неверное утверждение jsfiddle.net/m221ntkn
  • 0
    Как работает желаемая функция без jquery, но с обычным javascript? Извините, я довольно новичок в AJAX
Показать ещё 4 комментария
0

попробуйте следующее, это должно работать

<?php 
echo 'Logged in ';
?>
<script> alert("hello")</script>;
<?php
  // the rest of your php code
?>
  • 0
    Это не сработает. Я забыл упомянуть, что это в файле XML ....
  • 0
    @Nytrix тогда извините, я не могу вам помочь, мои знания ограничены php mysql js и css, но вы можете попробовать поиск в Google

Ещё вопросы

Сообщество Overcoder
Наверх
Меню