2012-01-06 4 views
1

Мой код ajax работает очень хорошо, но я хочу добавить javascript в свой файл запроса.Запустить код javascript после загрузки ajax в div

Мой код:

$('#result').load('code.php'); 

Это хорошо работает, но в code.php я поставить этот код <script>alert('hi');</script> не выдаст сообщение об ошибке или предупреждение.

Примечание: Мне нужно написать код javascript в code.php.

По какой-то причине мне нужно запустить JavaScript в code.php

Может ли тело мне помочь?

+0

Почему бы не использовать сценарий, как этот '$ ('#') результат HTML (код)', где код функции успеха от AJAX. И в ajax url введите code.php и в code.php напишите, что вы хотите, чтобы он отображал – viper

+2

@viper, потому что он такой же, как '$ ('# result'). Load ('code.php');' , – noob

+0

Я не доставляю вам гадюки. что сказать? –

ответ

1

Try:

$('#result').load('code.php', function() { alert("hi!"); }); 

Теперь дело в том, что встроенный <script> блок в HTML вернулся из вашего PHP кода должен выполнения. Если он не работает, я бы проверял, чтобы возвращаемый HTML не был каким-то образом поврежден. Вы можете использовать инструменты отладки вашего браузера для проверки тела возврата из вызова ajax.

+0

Нет, нет, я уже использую это, но мне это не нужно, потому что какая-то переменная в code.php может быть динамической –

+1

Ну, вы не упомянули, что используете это в своем вопросе. Как я добавил к моему ответу, блок '

-1

попробовать это как скрипт в вашем PHP: тип

<script type="text/javascript" language="javascript">alert('hi');</script> 

набор и язык

редактировать:

мои файлы

мои настройки файлов был как этот

test.html

<html> 
<header> 
<title>test</title> 
<script type='text/javascript' src='jquery-1.7.1.min.js'></script> 
<script type='text/javascript' src='test.js'></script> 
</header> 
<body> 
<div id="result">adasd</div> 
</body> 
</html> 

test.js

$(document).ready(function(){ 
    $("#result").load("test.php"); 
}); 

test.php

<script type="text/javascript" language="javascript">alert('hi');</script> 
<?php 
    echo 'test'; 
?> 

может быть, помогает?

+0

не работает ...... –

+0

@micha Я думаю, что прилагательное, которое вы ищете, является «проприетарным». – jrummell

0

Я не ретранслировать знаю, почему это не работает для вас, но если он не взглянуть на мой ответ

Я думаю, что это должно работать:

$("body").load("code.php", function(data) { 
    data 
     .replace(/\r|\n|\t/g, "") 
     .replace(
      /<script.*?>.*?<\/script>/gi, 
      function(input) { 
       $("script:first").prepend(input); 
      } 
     ); 
}); 

Если бы не попробовать . это:

$("body").load("code.php", function(data) { 
    data = data 
     .replace(/\r|\n|\t/g, "") 
     .replace(
      /<script(\s.*?(src="(.*?)".*?)?)?>(.*?)<\/script>/gi, 
      function(input, match1, match2, match3, match4, match5) { 
       if (match3) { 
        $("script:first").prepend(input); 
       } else if (match5) { 
        eval(match5); 
       } 
      } 
     ); 
}); 
+0

Ничего из этого не должно быть необходимо. Код jQuery будет запускать любые встроенные '