У меня есть такой код JavaScript:
<script> function Foo() { alert('Foo'); } $.post('file.php', {}, function(data) { $('#elem').append(data); }); </script> <div id="elem"></div>
Пример data :
<script>Foo()</script>
Конечно, Foo() там недоступен.Как я могу захватить это?
Foo()
Убедитесь,
#elem
foo
$(function(){ //FOO should not be defined in here.. });
пример на http://jsfiddle.net/k7Y55/2/
Если вы append("<script>Foo()</script>"), / разрывает строку.Просто добавьте символ \, например: append("<script>Foo()<\/script>").
append("<script>Foo()</script>")
/
\
append("<script>Foo()<\/script>")
Да, я знаю, что эта строка является возвращением ajax в вашем случае.Итак, просто верните "<script>Foo()<\/script>" со стороны сервера.
"<script>Foo()<\/script>"
Посмотрите на эту скрипку: http://jsfiddle.net/ErickPetru/qps2q/
try:
$.ajax({ url: "test.html", dataType: "script", success: function(data){ $('#elem').append(data); } });
Надеюсь, это поможет.
легкий ответ. вам нужно установить переменную так: var foo = function(){}
var foo = function(){}
<script type="text/javascript"> var foo = function(data){ alert(data); } $.post({ url: 'someurl.aspx', success: function(data){ foo(data); } }); </script>
foo должно быть доступно, если оно было определено до его вызова.
Кроме того, вы должны завершать вызовы функций точкой с запятой ;
;
<script> function Foo() { alert('Foo'); } </script>
...
<script> Foo(); </script>