使用jquery.load加载多个Highcharts

bug*_*net 6 javascript jquery highcharts

例如,我有一个使用jquery.load调用其他网页的母版页

$("#loading").show();
$("#arena").load('Project.prx?PID=' + dataReport);
$("#loading").hide();
Run Code Online (Sandbox Code Playgroud)

(Project.prx采用内部CGI语言,如ColdFusion,它正在推出HTML和JavaScript.)

在浏览器调试器中,每次单击链接时,我都会收到如下错误消息,即

Uncaught Highcharts error #16: www.highcharts.com/errors/16 
Run Code Online (Sandbox Code Playgroud)

Highcharts网站上说这个错误:

Highcharts错误#16

已在页面中定义的Highcharts

第二次在同一页面中加载Highcharts或Highstock时会发生此错误,因此已经定义了Highcharts命名空间.请记住Highcharts.Chart构造函数和Highcharts的所有功能都包含在Highstock中,因此如果您组合运行Chart和StockChart,则只需加载highstock.js文件.

由于我正在使用jquery的load()并以当前文档中的div为目标,因此Highcharts声称我正在加载命名空间的第二个实例是公平的.不过,这就是我想要做的.

那么任何想法如何将其他Highcharts页面加载到具有Highcharts命名空间的现有实例的页面中?

后来

我没有在控制器中放置高级图表,只在目标和发布中取得了一些成功

$("#loading").show();
$("#arena").empty();
delete(Highcharts);
$("#arena").load('Project.prx?PID=' + dataReport);
$("#loading").hide();
Run Code Online (Sandbox Code Playgroud)

然而,这并未证明在每种情况下都是成功的.

Kac*_*dej 1

最好是不要加载已加载的文件。您可以通过在主页中加载一次 Highcharts 来完成此操作,并且不要在任何以后加载的 Highcharts 页面中加载。

第二种解决方案是将图表放在单独的 iframe 中。

另一种方法是在 Highcharts 页面中用 JavaScript 加载 Highcharts 库,同时使用“if”检查它是否已加载。