2014-04-25 48 views
2

TL; DR:我的index.html jQuery与bokeh.js的声明干扰了php页面中的脚本标记能够将它们自己展现为它们应该加载到的div中的能力。为什么?JQuery干扰了bokeh.js。为什么?

我一直在试图从python散景包中嵌入graph.create_html_snippet()的输出。我遇到了很多麻烦,所以我发布了一个单独的测试html页面,以便将它发布到SO,当我发现我的测试页面正常运行时!那就是:

<html> 
<head> 
<script src="js/bokeh.js"></script> 
<script> 
$(document).ready(function() { 

    $("#get_graph").click(function() { 
     $("#show_graph").load('hello.php'); 

    }); 
}); 
</script> 

</head> 
<body> 

<!-- click this to bring up graph --> 
<a href="#"><div id="get_graph" style="width:100px;height:30px;background-color:#ddd;">Show graph</div></a> 

<div id="show_graph"></div> 

</body> 
</html> 

而且hello.php是在这里:

<?php 
echo 'hello'; 
?> 

<script src="31b1ad52-e095-4ba1-89d0-69f0b898d677.embed.js" bokeh_plottype="embeddata" bokeh_modelid="31b1ad52-e095-4ba1-89d0-69f0b898d677" bokeh_modeltype="Plot" async="true"></script> 

所以,现在面临的,为什么它会不是我真正的网页上工作的神秘面纱(未张贴简洁)和为什么它会在我的测试页面上工作,我开始出入底层的东西,直到我已将此添加到我的测试页的头部:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 

然后事情停止工作。但是后来我意识到,等一下,如果我没有在我的<head>中为jQuery提供脚本,我的原始测试页如何在jQuery中工作?我回到主页面并删除了JQuery脚本,突然间嵌入工作正常。所以我进入了bokeh.js脚本,发现了一堆对jQuery的调用,我不太明白。

为什么我的jQuery声明干扰了bokeh.js?当我使用jQuery声明的html页面加载php页面时,php加载到的html元素将不会加载脚本标记,但所有其他php命令都可以。这是怎么回事?由于我在写这篇文章的时候解决了这个问题,我想我的问题更多的是出于对可能遇到同样问题的人的好奇/帮助,因为使用php嵌入散景是其中最好的应用之一。

感谢您的任何帮助。

回答

2

这是最近发现的问题,你可以跟踪进度:

https://github.com/ContinuumIO/bokeh/issues/554

应该有一个点版本,其中包括很快这个修复。

+0

当然,我想我毕竟不能使用散景。感谢您所有的帮助! – thefourtheye

+0

对不起 - 但请注意看问题。我们的开发进度非常快,特别是对于下几个版本,这个问题将在几周内得到解决。 –

+0

我其实找到了解决办法。如果您使用HTML5 iframe,则可以将散点图放置在没有jQuery的页面中。所以主页的代码工作,图形仍然嵌入。 – thefourtheye

相关问题