我正在通过jquery .load()将一些内容(不是HTML标题或任何内容,只是来自PHP的HTML格式的内容)加载到div中。
它完美适用于所有内容但是一些基于Flash的amCharts(www.amcharts.com)使用swfObject动态加载了amCharts PHP。单独加载的文件可以工作并加载Flash图表。当使用.load()加载时,文件似乎已加载,但脚本未执行且swfObject未执行。
现在,我不确定在这里给你的代码是什么,所以只是给它一些东西......
因此,在主要父级的标题中是监听导航点击以加载内容的代码(这是我们的amcharts): -
$('a.leftNav').click(function() {
page = $(this).attr('page');
metID = $(this).attr('metID');
if($("#mainRight").is(":visible")) { $('#mainRight').hide(200); }
switch(page) {
case 'metrics': $("#mainRight").load("content.php?load=mets", { metID: '5000227' }); break;
}
$('#mainRight').show(300);
});
这样有效。加载正确的页面并执行PHP,如转到页面content.php?load = mets所证明的那样。 PHP生成的该页面上的代码是: -
<div class="amChart" id="chart_views_div">
图表加载......
这应该是交换的swfObject代码,我知道(我已经输出到生成PHP代码的文本文件)。
.load()和一般加载的swfObject和JS会发生什么?
答案 0 :(得分:1)
当jquery .load()
完成时,你需要调用一个函数来初始化swfObject替换,因为我相信swfObject通常会在window.load上初始化。
类似的东西:
$("#mainRight").load("content.php?load=mets", function() {
// initialise swfObject here e.g.
swfobject.embedSWF("myContent.swf", "chart_views_div", "300", "120", "9.0.0");
});
答案 1 :(得分:0)
Am Charts 仍然使用 swfobject 1.5
Swfobject 2.x提供了更多的IMHO amcharts应该更新以使用新版本。
2.x具有在这种情况下应该使用的createswf