Javascript <;脚本>;没有在AJAX中返回
我正在创建一个WordPress主题,并使用AJAX加载新的归档页面。问题是新获取的内容中没有返回整个Javascript <;脚本>;没有在AJAX中返回,javascript,ajax,wordpress,script-tag,Javascript,Ajax,Wordpress,Script Tag,我正在创建一个WordPress主题,并使用AJAX加载新的归档页面。问题是新获取的内容中没有返回整个///something// 假设我最初有这些代码: <div id="post-1"> <script type="text/javascript"> //some codes here// </script> <div class="content"> </div> </div>
假设我最初有这些代码:
<div id="post-1">
<script type="text/javascript">
//some codes here//
</script>
<div class="content">
</div>
</div>
我试图运行通过AJAX加载的Javascript,但问题似乎是Javascript本身甚至没有与其余内容一起返回
谢谢你阅读这么长的问题,我真的很感谢你的帮助 方法从插入的html中剥离
标记
在尝试插入HTML之前,需要遍历HTML以查找所有脚本标记,然后使用jQuery.globalEval
执行它们的内容
success: function(html) {
var newhtml = $('#container', $(html));
// execute included script tags - assumes inline for now
$('script', newhtml).each(function() {
$.globalEval($(this).text());
});
$('#container').html(newhtml).fadeIn(500);
}
在服务器端处理ajax请求的代码是什么?感谢您的输入,但很抱歉,我对ajax非常陌生,不知道哪些代码在服务器端处理它。如果这些信息有用,我将使用WordPress 3.4.2和jQuery 1.6.1。在脚本的某些部分,您将使用“jQuery”。在其他部分中,您使用的是“$”别名,但我看不到您在任何地方设置了该“$”别名。WordPress以“无冲突”模式加载jQuery,这意味着“$”不会自动设置。您的问题可能与您认为的有所不同。谢谢您的回复。实际上,我只是取出了脚本的一部分,在.js文件的开头已经有了它:$(document).ready(function($){仍然困扰我的是,我不知道为什么除了所有Javascript代码之外,所有的东西都可以通过AJAX检索。通常情况下,人们会返回Javascript,但不会执行,但在我的情况下,它根本不会返回。非常感谢任何帮助!这是正确的,从jQ>1.4开始……我确实将我的脚本包装到了样式类型java中脚本标记;)您的编辑将无法工作(如我所记得的),因为$(html)也会拦截脚本标记。感谢您的帮助。我已经尝试了,但问题仍然存在。我甚至尝试了不同的数据类型(如“html”),但仍然无法工作。
jQuery('.ajax-pagination a').live('click', function(e){ //check when pagination link is clicked and stop its action.
e.preventDefault();
var link = jQuery(this).attr('href'); //Get the href attribute
jQuery.ajax({
url: link,
dataType: "text",
context: document.body,
beforeSend: function(){jQuery('#container').fadeOut(500)},
success: function(html) {
var newhtml = $('#container', $(html))
$('#container').html(newhtml);
$("container").find("script").each(function(i) {
eval($(this).text());
});
jQuery('#container').fadeIn(500);
},
error: function() {
alert('Error');
}
});
});
success: function(html) {
var newhtml = $('#container', $(html));
// execute included script tags - assumes inline for now
$('script', newhtml).each(function() {
$.globalEval($(this).text());
});
$('#container').html(newhtml).fadeIn(500);
}