canvgを介してpngに変換し、Webページに表示したhighchartssvgがあります。次に、このpngをサーバーに送信して、画像へのリンクを作成します。私は別のトピックの回答コードに従っていました:
私のJavaScriptコードは次のとおりです。
var timeout = window.setTimeout(function() {
canvg(document.getElementById('canvas'), chart.getSVG());
}, 10000);
var canvas = document.getElementById("canvas");
var img = canvas.toDataURL("images/png");
document.write('<img src="'+img+'"/>');
saveDataURL(img)
function saveDataURL(canvas) {
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
window.location.href = request.responseText;
}
};
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.open("POST", "saveDataURL.php", true);
request.send("dataURL=" + canvas.toDataURL());
}
saveDataURL.phpと呼ばれる私のphpは次のようになります。
$dataURL = $_POST["dataURL"];
$encodedData = explode(',', $dataURL)[1];
$decodedData = base64_decode($encodedData);
file_put_contents("temp/faizan.png", $decodedData);
echo "http://whichchart.com/temp/faizan.png";
Firefox 12では、「request.setRequestHeader」行に次のエラーがスローされます。
コンポーネントが失敗コードを返しました:0x804b000f(NS_ERROR_IN_PROGRESS)[nsIXMLHttpRequest.setRequestHeader] http://whichchart.com/oil.js 行102
Chromeでは、同じ行のエラーは次のとおりです。
キャッチされないエラー:INVALID_STATE_ERR:DOM例外11 saveDataURLoil.js:106(無名関数)
例はここで見ることができます:whichchart.com。手伝ってくれますか?ありがとう。