システム開発ブログ/ ソフトウエア開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

Internet Explorerでクリップボードのデータを操作する

牧野
牧野 (2009年12月11日 10:17)
ソフトウエア開発部

マルチラインのテキストデータを扱う上で厄介なのが改行コードです。
改行コードには以下の3種類があるのはご存知のことでしょう。

・CR(Carriage Return)
・LF(Line Feed)
・CRLF:CRとLFの組み合わせ

Internet Explorer(以下IE)ではクリップボードのデータを扱うことのできる
独自拡張のスクリプトがあります。
clipboardData.getData('text')
clipboardData.setData('text','文字列')
clipboardData.clearData()

このスクリプトを使用して、
クリップボードにコピーしたエクセルデータをテーブル形式として取り込み、
サーバサイド(VB)でDataSetに格納して処理をしたかったのですが、
どうにも上手くいきません。

エクセルからデータをクリップボードにコピーした場合、
セル内改行はLFで保存され、通常の改行はCRLFで保存されています。

クリップボードにコピーした時点ではCRLFとLFはそれぞれ保持できていたのに、
いざサーバーサイドでの処理段階で判断が上手くいかないと思ったら、
IEでは、formのtextarea等のマルチラインテキストに文字を入力した場合、
改行が全てCRLFに変換されていました。
(ちなみに、OperaもCRLFのようですが、
Firefox、Safari、ChromeはLFになります。)

改行コードを統一されてしまっては、
テーブル形式として上手く取り込めないわけです。

解決策としては、clipboardData.getData('text')で取り込んだ文字列を
そのままサーバーにsubmitして投げてしまわず、
javascript上でそれぞれの改行コードを別の文字列に変換してしまうことでした。
そしてサーバ側で取得後に、変換した文字列を改行コードに
変換しなおせば上手く行きました。

IE7からクリップボードのデータを操作する場合は
警告が出るようになってしまったため、
使用機会も少なくなってしまいましたが、
Webシステムを扱う上では頭の片隅において置くと良いかもしれません。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。