我在網頁上有幾個D3.js圖形。當用戶點擊一個按鈕時,新圖形將滑下,而舊圖形將向上滑動。我做了一些研究,並找到了一些鏈接。做我想做的是這裏:http://d3export.cancan.cshl.edu/。但是,我無法讓它工作。這裏是一個的jsfiddle一些代碼,這是非常類似地雷在一頁上生成具有多個D3.js圖形的PDF/SVG/PNG
這裏是JS代碼
$(function() {
$(".show").click(function() {
$(".targetDiv").slideUp("fast");
if ($("#graph" + $(this).attr("target")).css("display") != "block") {
$("#graph" + $(this).attr("target")).slideDown("fast");
}
});
});
(function() {
// Graph 1 code
show_svg_code();
})();
(function() {
// Graph 2 code
show_svg_code();
})();
// ... etc.
function submit_download_form(output_format) {
var tmp = document.getElementById(/* What ID goes here? */);
var svg = tmp.getElementsByTagName("svg")[0];
var svg_xml = (new XMLSerializer).serializeToString(svg);
var form = document.getElementById("svgform");
form['output_format'].value = output_format;
form['data'].value = svg_xml ;
form.submit();
}
function show_svg_code() {
var tmp = document.getElementById("#graph1");
var svg = tmp.getElementsByTagName("svg")[0];
var svg_xml = (new XMLSerializer).serializeToString(svg);
$("#svg_code").text(svg_xml);
}
$(document).ready(function() {
$("#save_as_svg").click(function() { submit_download_form("svg"); });
$("#save_as_pdf").click(function() { submit_download_form("pdf"); });
$("#save_as_png").click(function() { submit_download_form("png"); });
});
這裏是類似於HTML礦
<a class="show" target="1">Chart 1</a>
<a class="show" target="2">Chart 2</a>
// ... etc.
<button type="button" onclick="javascript:submit_download_form('svg')">SVG</button>
<button type="button" onclick="javascript:submit_download_form('pdf')">PDF</button>
<button type="button" onclick="javascript:submit_download_form('png')">PNG</button>
<div id="graph1" class="targetDiv"></div>
<div id="graph2" class="targetDiv"></div>
// ... etc.
<form id="svgform" method="post" action="download.pl">
<input type="hidden" id="output_format" name="output_format" value="">
<input type="hidden" id="data" name="data" value="">
</form>
的問題我的是,我有超過1圖表在頁面上。我有近30個圖表,其中隱藏了所有圖表(除了顯示的圖表之外)。我將如何解決這個問題?在JS中,它要求目標圖的ID。我如何才能將其僅定位到顯示的圖形?這也必須在IE,Chrome,Firefox和Safari中運行。
感謝所有幫助
編輯:我看到有他鏈接到一個Perl腳本。我將文件保存到我的服務器,但它仍然不起作用(我將它保存爲download.pl,並且我試圖將它保存在與.html文件相同的文件夾中,然後我嘗試將它保存在同一文件夾中作爲.js文件)。
編輯2:我缺少我的服務器上的libRSVG插件。我下載了該文件夾(V. 2.37.0.tar.xz),但其中大約有一百個文件。我該怎麼處理它?
如何安裝軟件取決於您在服務器上運行的操作系統。您應該能夠在標準存儲庫中找到libRSVG。 –
有沒有其他更好的方法來做到這一點?即使我剛剛獲得了可顯示圖形的可下載SVG。我試過這個:http://bl.ocks.org/biovisualize/1209499,但我不知道如何讓它使用CSS,以及如何生成顯示圖形的圖像(例如http:// jsfiddle .net/UK8bw/6 /,但這隻適用於一個圖表,並且不使用css) – TFischer
你有沒有看過[svg2pdf](http://rhodopsin.blogspot.ie/2009/11/php -class-增加-SVG圖像到PDF-files.html)? –