イントロダクション
スタイルシートによってスタイルを適用した文字を、コピーによってブログに張り付けることのできるサービスを作ってみました!スタイル付きテキストを、コピーでブログに張り付けすることのできるサービスを作成しました!
http://upa-pc.blogspot.com/2015/02/css-copy-to-blog.html
そのソースコードをここで公開します。
なお、これは初版(Version1.0)のものであり、今後修正が加わる可能性があります。
ソースコード
<iframe srcdoc=' <form onsubmit="return false;"> <b>表示するテキスト:</b><input type="text" id="input-text" style="width: 500px" /><br /> 例)こんにちは!<br /><br /> <b>テキストのスタイルシート(CSS):</b><input type="text" id="input-css" style="width: 500px" /><br /> 例)text-shadow: 4px 4px 7px rgba(150, 150, 150, 1);<br /><br /> </form> <br /> 以下のテキストをコピーして、ブログの編集画面に貼り付けてください。<br /> <p>(上手くスタイルが適用されたテキストをコピーできない場合、コピー対象のテキストの上下の 1 行も含めてコピーしてみてください。)</p> <div id="copy_target"> ここにデータが出力されます。 </div> <script type="text/javascript"> <!-- (function () { var id_input_text = "input-text"; // 入力テキストを保持する要素の id var id_input_css = "input-css"; // 入力テキストを保持する要素の id var id_output = "copy_target"; // 出力値を保持する要素の id // 前回検査時の入力値 var input_old_text = ""; var input_old_css = ""; // 定期的に入力を監視し、入力が変化していたら、出力する setInterval((function () { var input_text = document.getElementById(id_input_text).value; var input_css = document.getElementById(id_input_css).value; if (input_text != input_old_text || input_css != input_old_css) { // データ出力 var obj_output = document.createElement("div"); // 余分なデータがコピーされないように十分な余白をとる obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createTextNode("--- ここから ---")); obj_output.appendChild(document.createElement("br")); var obj_output_text_with_css = document.createElement("span"); obj_output_text_with_css.setAttribute("style", input_css); obj_output_text_with_css.appendChild(document.createTextNode(input_text)); obj_output.appendChild(obj_output_text_with_css); // 余分なデータがコピーされないように十分な余白をとる obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createTextNode("--- ここまで ---")); obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createElement("br")); obj_output.appendChild(document.createElement("br")); // 画面へ出力 var obj_output_target = document.getElementById(id_output); obj_output_target.innerHTML = ""; obj_output_target.appendChild(obj_output); input_old_text = input_text; input_old_css = input_css; } }), 500); })(); //--> </script> ' width="100%" height="600px" id="iframe-copy_css"> </iframe> <script type="text/javascript"> <!-- // iframe の srcdoc 非対応ブラウザ用 // javascript で iframe の中身を作成する (function () { var iframe = document.getElementById("iframe-copy_css"); // iframe の中身が無ければ、作成する if (iframe.contentWindow.document.body) { if (iframe.contentWindow.document.body.innerHTML != "") { return; } } iframe.contentWindow.document.open(); iframe.contentWindow.document.write("<html><head></head><body>" + iframe.getAttribute("srcdoc") + "</body></html>"); iframe.contentWindow.document.close(); })(); //--> </script>
動作確認環境
以下のブラウザバージョンで、正常に動作することを確認しました。- Chrome : 40.0.2214.111 m
- Firefox : 35.0.1
- Internet Explorer : 9.0.8112.16421, 11.0.9600.17501
解説
解説は、以下のページにて行っています。ソースコード解説:スタイル付きテキストを、コピーでブログに張り付け
http://upa-pc.blogspot.com/2015/02/explain-css-copy-to-blog-v1.0.html
コメントを投稿 (ここをクリックしてコメント投稿フォームを表示)
コメント投稿機能について