在 Fancybox 中显示 Google Visualization API(JS 弹出窗口)
所以我基本上试图在 Fancybox(JS 弹出窗口)中嵌入 Google 可视化图表。图表在页面上正确显示......但在花式框中不正确。有什么想法吗?
这是我正在使用的代码
$(".class").fancybox(function() {
drawChart();
});
--- 编辑 ---
$(".view_research").fancybox({
'onStart' : drawChart
});
** 此编辑也不起作用,但至少使用 fancybox 允许的参数之一
当我单击链接时,会显示 fancybox 加载图像..但实际弹出窗口永远不会加载。
我还应该注意到,如果我从弹出窗口尝试加载的页面中删除 Google 图表,弹出窗口将顺利加载。
提前致谢, 菲尔
So I'm basically trying to embed a Google Visualization chart within a Fancybox (JS pop-up). The chart shows correctly on the page.. but not within the fancybox. Any ideas?
Here's the code i'm using
$(".class").fancybox(function() {
drawChart();
});
--- edit ---
$(".view_research").fancybox({
'onStart' : drawChart
});
** this edit does not work either, but at least uses one of the arguments allowed by fancybox
The fancybox loading image is displayed when I click the link.. but the actual pop-up never loads.
I should also note that if I remove the Google chart from the page that the pop-up is trying to load, the pop-up loads without a hitch.
Thanks in advance,
Phil
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为了使其工作,您需要:
onComplete
选项这对于 gviz 来说很常见在尝试将图表放入其中之前,div 必须是可见/绘制的,否则您最终可能会得到一些看起来非常奇怪的图表(不确定当您尝试在不可见的 div 中渲染图表时会发生什么..)。 onComplete 负责处理这个问题。在其他情况下,使用 gviz 图像库是解决该问题的一个很好的解决方法。
无论如何,这是一个使用 fancybox 和 gviz 的工作示例(饼图代码取自 google code Playground ):
In order to get this to work you need to:
onComplete
option of the fancybox callIt's common enough with gviz for the div to be visible/drawn before trying to put a chart in it, else you can end up with some pretty odd looking charts (not sure what goes on when you try to render a chart in an invisible div..). The onComplete takes care of this. Using the gviz image library is a good workaround for that problem in other cases.
Anyway, here's a working example of using fancybox and gviz (pie chart code taken from google code playground):
drawChart
函数必须专门将图表绘制到 fancybox 创建的弹出窗口上,仅在回调中调用该函数不会有任何好处。The
drawChart
function must specifically draw the chart onto the popup created by fancybox, just calling the function inside the callback will not do any good.