Chromeを既定のブラウザにできない理由

Google Chromeは、IEに比べてはるかに高速で良いのですが、Google Chromeを既定のブラウザにはしていません。
その一番の理由は、文字列のコピー&ペーストで、余分なスペースや改行が付いてしまうことです。
認証が必要なWebサイトのID管理には、MyHome PortalのID管理を使っていますが、IDやパスワードをコピーする時に、英数字混在&記号交じりの文字列をコピーするために、トリプルクリックを使いますが、Google Chromeでは、なぜか元の文字列に存在しないスペースや改行が付いてしまいます。
MyHome PortalのID管理では文字列は、コピー&ペーストしやすいように<table><tr><td>で囲んでいますが、Google Chromeではペースト先にスペースや改行が入ってしまいます。
<div>や<span>で囲んでも駄目です。IEでも<div>や<span>では余分な範囲を選択してしまいます。
下にサンプルを載せました。Google Chromeで試してみてください。
改善策をご存知の方、教えてください。

<table><tr><td>abc@123#xyy</td></tr></table>
<div>abc@123#xyy</div>
<span>abc@123#xyy</span>

【table】
abc@123#xyy

【div】
abc@123#xyy

【span】
abc@123#xyy

【2010/3/5 追記】
※この問題は、Livedoor KnowledgeにてBLUEPIXYさんから素晴らしい解決策をいただきました。

http://knowledge.livedoor.com/44359
【2010/3/8 追記】
Ver.2.62でこれを適用しましたが、Firefoxでは不具合が発生することが判明。Ver.2.63でChromeのみ、このoncopy処理を適用するようにしました。

http://ok2nd.blog87.fc2.com/blog-entry-203.html

BLUEPIXYさんからの解決策を転載させていただきます。
oncopyを使って以下のスクリプトで処理します。

<head>~</head>に、
<script type="text/javascript">
function copy(e){
var text = window.getSelection()+"";
text=text.replace(/(.+)\s*/,"$1");
input = document.createElement("input");
input.hidden = true;
input.value = text;
document.body.appendChild(input);
input.select();
try {
success = document.execCommand("copy", false, null);
} catch (ex) {
success = false;
} finally {
document.body.removeChild(input);
}
return false;
};
</script>


body 部分で、oncopy にcopy() を割り付け
<table oncopy="copy(event);return false">
<tr><td>abc@123#xyyz</td></tr>
</table><br />

スポンサーサイト

はてなブックマークに追加 はてなブックマーク - Chromeを既定のブラウザにできない理由

theme : CSSレイアウト
genre : コンピュータ

comment

Secret

プロフィール

ok.2nd

Author:ok.2nd
HomePage:
http://ok2nd.web.fc2.com/
Email: m.ok.2nd@gmail.com

最新記事
最新コメント
最新トラックバック
月別アーカイブ
FC2ブログランキング

FC2Blog Ranking

検索フォーム
カテゴリ
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
ユーザータグ