アプリ版:「スタンプのみでお礼する」機能のリリースについて

IETesterを使用して作成したサイトの表示確認をしています。
http://www.my-debugbar.com/wiki/IETester/HomePage

IE7,IE8を使用し、作成したサイトの表示確認をしていると、既にアクセス済みのリンクが紫色にならず未アクセスの青色状態のままの場合があります。私の検証では、この現象は、
下記のコードを使用してIE7及びIE8で別画面をタブ(タブを有効にしている場合)又はブラウザの別ウィンドウで開いた場合に発生します。

<a href="#" onClick="window.open('http://www.yahoo.co.jp/index.html'); return false;">テストです。</a>

IE5.5及びIE6の場合、同じリンクでも、アクセス済みのものは青から紫色に変色しているのに。

別画面をタブ(タブを有効にしている場合)又はブラウザの別ウィンドウで開かず、同じウィンドウにおいて現在のページが他のページへ切り替わる下記コードのようなリンクでは、上記の問題は発生しません(ちゃんと、アクセス済みのリンクが青から紫色に変わります。)。

<a href="'http://www.yahoo.co.jp/index.html ">テストです。</a>

別画面をタブ(タブを有効にしている場合)又はブラウザの別ウィンドウで開いた場合に既にアクセス済みのリンクが紫色にならず未アクセスの青色状態のままというのは、IE7,IE8の仕様なのでしょうか(コーディング及びIE7,IE8自体に問題なし?)?

通常のIE7も使用してみましたが、IETesterを使用した場合と同じ現象がおきます。通常のIE7自体もかなりテストしましたが、動作は安定しておりブラウザー自体の問題でもなさそうです。

作成したサイト側のバグの場合:
コードの改善策を教えて下さい。

IE7,IE8の設定の場合:
アクセス済みのリンクの色を変更する設定を教えて下さい(存在すれば)。


関連サイト等ありました、URLも教えて下さい。

よろしくお願いします。

A 回答 (3件)

仕様の変更です。

IE6以前だと末尾に#や?が付くアドレスは#や?がないものと同じアドレスとして認識されていましたが、IE7以降は別のアドレスとして認識されます。
他のブラウザと同じようにしたのでしょう。
まぁ、#は同じページ内の指定された位置を示すものですから前のままでも問題ないと思いますが、?はそれ以降の文字列が変わるだけでページ内容が変わることもあるので、同じアドレスとして認識されるのは不便な機能だったと思います。

例えばこういう連続したページだと、全て同じとみなされることでどこまで見たのか分からなくなります。

?page=1
?page=2



?page=20

この回答への補足

MAN_MA_RUIさん
ご回答、ありがとうございました。

>仕様の変更です。
MAN_MA_RUIさんの上記のご回答に関してIE7及びIE8の仕様変更の内容が詳しく記述されたサイト等、ご存知ありませんか?どうやってMAN_MA_RUIさんは、上記のことをお知りになったのですか?

>IE6以前だと末尾に#や?が付くアドレスは#や?がないものと同じアドレ
>スとして認識されていましたが、IE7以降は別のアドレスとして認識さ
>れます。
少し本題とずれてしまったので、表示済みリンクの”色”に話を戻しますと、MAN_MA_RUIのおっしゃっていることは以下のようなことでしょうか:
<MAN_MA_RUIのおっしゃっていることの推測】
IE6以前のだと、末尾に#や?が付くアドレスは#や?がないものと同じアドレスとして認識されていたため、以下のようなリンク(href="#")でもアクセス済みのものは青から紫色に変色していた。

しかし、IE7以降は、末尾に#や?が付くアドレスは#や?がないものと別アドレスとして認識されるため、以下のようなリンク(href="#")でアクセス済みのものはリンクが紫色にならず未アクセスの青色状態のままのとなる。

<a href="#" onClick="window.open('http://www.yahoo.co.jp/index.html'); return false;">テストです。</a>

<追加質問1>
結果的に、No1.さんがおっしゃっているように、リンクの書き方を以下のように変更することが、IE7以降においてもアクセス済みのリンクを青から紫色に変色させる解決策となるのでしょうか? 下記のリンクの記述変更によりアクセス済みのリンクは青から紫色に変色するようになることは確認しました。

<a href="#" onClick=・・・以下略
から下記へ変更
<a href="http://www.yahoo.co.jp/index.html" onClick="window.open('http://www.yahoo.co.jp/index.html');return false;">テストです。</a>

もっと良い解決策(記述方法等)ありますか?

よろしくお願いします。

補足日時:2009/07/05 15:33
    • good
    • 0
この回答へのお礼

MAN_MA_RUIさん
補足の場所がもう無いので、ここに補足書きます。

<a href="​http://www.yahoo.co.jp/index.html"​ onClick="window.open('​http://www.yahoo.co.jp/index.html');return​ false;">テストです。</a>
上記の書き方で別ウィンドウを開く以外にも
<a href="​http://www.yahoo.co.jp/index.html" target="_blank">テストです。</a>
のようにtarget="_blank"を使用したやり方があるようですが、やはりwindow.openの方が何かとおすすめなのでしょうか(window.openだと開くウィンドウのサイズ等も指定できますし。)?

お礼日時:2009/07/05 16:48

> しかし、IE6又はそれ以前のIEブラウザーの場合、「<a href="#" onClick=・・・以下略」でも訪問済みのリンクは青から紫に変色するのですが。


#をURLと誤認しているということはないですか?
同じHTMLに

<a href="#">#のテスト</a>

を入れたら、どうなるでしょうか?

この回答への補足

think49さん
ご回答、ありがとうございました。

<a href="#">#のテスト</a>と記述するとアクセス済みのものは青から紫色に変色します。しかし、ブラウザーのリフレッシュボタンを押すと、直ぐにまたリンクの色が青に戻ります。

補足日時:2009/07/05 16:14
    • good
    • 0

>既にアクセス済みのリンクが紫色にならず



とありますが

><a href="#" onClick=・・・以下略

ってのはアクセスしてるのは#であって、windows.openで指定した
サイトではないですよね?おそらく混同しているのでは?
スクリプトで開いたことがあるものを訪問ずみとしたいなら
あえて書くなら

<a href="http://www.yahoo.co.jp/index.html" onClick="window.open('http://www.yahoo.co.jp/index.html');return false;">テストです。</a>

的な書き方になるのでは?

この回答への補足

yambejpさん
ご回答、ありがとうございました。

参考にさせて頂きます。
しかし、IE6又はそれ以前のIEブラウザーの場合、「<a href="#" onClick=・・・以下略」でも訪問済みのリンクは青から紫に変色するのですが。

補足日時:2009/07/03 19:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!