2014-04-25 52 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

相關問題