动态加载包含javascript的内容

时间:2011-05-30 22:08:06

标签: php javascript ajax jquery

我想在我的网页内容加载之前添加进度条,所以我想通过javascript动态加载它。这个内容在其html中嵌入了javascript。我尝试使用jquery.load(),除了它不支持对返回的内容不起作用的js这个事实外,它工作得很好

只是为了说清楚,我正在做的是加载所有内容:

 $("#contentid").html("progressBar.gif");
 $("#contentid").load(script.php #content)
 $("#contentid").show();

并且在script.php返回的内容中有js调用,例如:

jquery.load (to crawl for data and displaying it when ready)
document.getElementById('some_div') (for chart api)
snippets that load widgets

我一直在尝试使用jquery.ajax,但不确定是否有可能使用它。我会喜欢这方面的一些意见。我能用它做到吗?

在加载脚本内容之前可能显示进度条的任何其他想法都会很棒。我正在尝试减少代码结构的变化,因为这种长时间的加载有时只会发生。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用进度条添加div,覆盖所有页面,并在加载页面后将其删除,使用:

$(window).load(function() {
  $('#progressbar').remove();
});

答案 1 :(得分:0)

JQuery的load方法将回调函数作为参数。加载完成后将调用该函数,因此您可以在此时隐藏进度条。以下是API docs

的示例
$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});

在你的情况下,它会是这样的:

$("#contentid").load(script.php, function(){
  $("#contentid").hide();
});