我正在加载包含一些javascript代码的页面,并且$.getScript()
方法不会在这里工作,因为一些javascript代码是通过php动态构建的。
<div id="fetch-me">
...
<script...>
var posts = <?php .... ?>
...
</script>
</div>
由于您可能熟悉此类问题,因此我将此div添加到:
$("#load-me").load("... #fetch-me");
Javascript无法使用。我需要显然执行。我尝试了一些事情,但没有成功。举个例子:
$("#load-me").load("... #fetch-me", function(){
eval($("#load-me").find("script").text());
});
感谢任何帮助,谢谢。
答案 0 :(得分:1)
load
将返回它在回调中加载的数据。尝试获取脚本并将其附加到<script>
标记。
$("#load-me").load("... #fetch-me", function(data){
$('<script>').html($(data).filter('script').html()).appendTo('head');
});
如果加载的页面中有多个脚本标记,则可能无效。如果是这样的话,试试这个:
$("#load-me").load("... #fetch-me", function(data){
$(data).filter('script').each(function(){
$('<script>').html($(this).html()).appendTo('head');
});
});
P.S。如果此方法无效,请尝试将.filter
更改为.find
。
答案 1 :(得分:0)
您是否在javascript中为字符串变量添加了引号?
var posts = "<?php .... ?>"
答案 2 :(得分:0)
你可以这样做:
$.get("page.php", function(data){
//data is the information that page.php returns
//Now instead of use this --> var posts = <?php .... ?>
//do this:
var post = data;
});