« 情報収集のための11の質問 | メイン | 弊社サービスへの断続的なアクセス断についてのお詫び »
2005年12月07日
javascript: link.href を変更するとリンクテキストが壊れます
(自己メモ)
javascript で ドキュメント内にある link (aタグ) の href を書き換えようと思っていろいろやっていたときに不思議な挙動(不具合?)を見つけたのでメモ。
たとえば、ページ内のリンク URL にすべて ?no-rss という引き数を(あとからスクリプトで)追加したい、とします。
そんなときは次のような javascript を埋め込めば簡単に実現できます。
<script type="text/javascript">
<!--
var links = document.links;
for (var i = 0; i < links.length; i++){
if (links[i].href.indexOf("http://akalabo.net/") == 0){
links[i].href += "?no-rss";
}
}
//-->
</script>
もちろん、DOM で getElementById() + setAttribute("href", 値) とやっても構いません。
#古いブラウザ考えて とりあえず Link オブジェクトを使っています。
さて、これで OK なはず・・・と、思いますよね。。。
ところが・・・
#いや、ひょっとしたら常識なのかもしれないので怖いのですが。。。
例えば
<a href="/">トップに戻る</a>
というリンク。
これは問題なく
<a href="/?no-rss">トップに戻る</a>
と変換されます。
が、リンクテキストの中に「@」マークが「途中」に含まれているものがあったとします。
たとえばこんなやつ。
<a href="/">トップ@戻る</a>
これが Win IE6 だと、次のように変換(表示)されてしまうのです。
<a href="/?no-rss">http://akalabo.net/?no-rss</a>
はい、リンクテキストが壊れます。
どうも、テキスト中の「@」マークが悪さをしている模様。
#Firefox などではこの問題は発生しません。
ということで、もし link.href をセットするスクリプトを実行しているなら、直後に link.innerText や link.innerHTML の再設定もお忘れなく。というか、忘れないように<自分。
#バグレポートに載ってるんだろうと思いつつ、探せず...
管理人の運営サービス:
メッセンジャー -- 会議室型メッセンジャー : フレッシュミーティング
RSS配信サイト -- あらゆるサイトのRSSを配信:My RSS.jp
ブログSEO対策 -- ブログ専用。検索エンジンのアクセス解析に:トラックワード
RSSリーダー -- リーダーだけの快速RSSリーダー:フレッシュリーダー
人気ブログランキング -- ブログの更新頻度と人気 度を測定:フィードメーター
リンク元アクセス解析 -- リンクが張られた瞬間にRSSで通知するアクセス解析:トラックフィード
ブログRSS検索 -- 旬な情報をお届けします:フレッシュフィード
RSS配信・作成 -- オンラインでRSSを作成・配信・分析できるサービス:RSSフィード.cc
RSSリンク集 -- RSSの簡単リンク集:RSSリンク集
ブックマーク -- メールでブックマークを実現:あとで読む
bookmark -- an email based bookmark service:toread.cc
RSSとは -- RSSに関する情報が満載のサイトです
投稿者 aka : 日時 2005年12月07日 19:01
トラックバック
このエントリーのトラックバックURL:
http://210.188.206.194/mt-tb-sf.cgi/295
このリストは、次のエントリーを参照しています: javascript: link.href を変更するとリンクテキストが壊れます:
» JavaScriptでアンカータグのhref属性を変更するとIEでリンクテキストが壊れる件 from Web Artisan Blog - ウェブ アルチザン ブログ
Research Artisanでは、外部リンクのクリック数を測定する、
”クリック測定”機能があります。
>クリック測定でアフィリエイトを成功に... [続きを読む]
トラックバック時刻: 2005年12月22日 16:22
