2009年9月29日火曜日

【更新】簡易リンクタグ生成JavaScript

※追記:再更新しました。
【再更新】簡易リンクタグ生成JavaScript簡易リンクタグ生成JavaScript」の更新版です。
IE,Sleipnirで動作確認済です。

前回の投稿では本当に簡易的に作っていたので、
一部のページでは取り返しのつかないほど困ってしまいます。

例えば。
ページタイトルが「<a>の使用方法」や「<div>の効力」の場合、
<a href="http://test.jp/a.htm"><a>の使用方法</a><a href="http://test.jp/div.htm"><div>の効力</a>
このようなソースになってしまいます。
これでは、リンクでない以前に「タグが閉じられていない」事によるページエラーが発生します。

そのために、以下の様に書き加えました。
javascript:
var dt=document.title;
dt=dt.replace(/</g, "&lt;");
dt=dt.replace(/>/g, "&gt;");
window.clipboardData.setData('Text', '<a href="' + document.URL + '" target="_blank">' + dt + '</a>');
window.status='◆リンクタグをクリップボードへコピーしました。';
void(0);
以下を右クリック→「お気に入りに追加」してください。 ◆リンクタグ生成JS 内部で「<>」を処理するために、「replace()」を使用しています。 以下のサイトを参考にしました。 Javascript: Replace の怪 正規表現(RegExp) 「replace()」は、単に文字を置換するだけでなく、 判断基準に正規表現を盛り込むことが出来ます。 正規表現の領域(対象)を「/.../」内に指定するので、 「dt.replace(/</g, "&lt;")」は、 「dt」内にある「<」を全て(g)「&lt;」へ置換する処理 になります。 これだけ憶えておけば、JSでの置換処理の道はグッと近くなりますね。 <>以外には<a>の邪魔になるモノはもう無いはずです。 たぶん。 HTMLは基本タグなので、タグの邪魔にさえならなければ大丈夫ですよね。

0 件のコメント:

コメントを投稿