WEBのリンク製作の質問です。

yugajsを使い、現在いるページのリンク(画像)を変えることにしているのですが、
トップページだけうまくいきません。
具体的には、
http://www.yahoo.co.jp/index.html
とアクセスした場合は大丈夫なのですが、
http://www.yahoo.co.jp/
とアクセスした場合画像が代わりません、
どちらでも同様に画像が変わるようにはどうしたらいいでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/07/11 02:57:49
  • 終了:2011/07/12 03:29:43

ベストアンサー

id:rouge_2008 No.1

rouge_2008回答回数594ベストアンサー獲得回数3512011/07/11 05:06:16

ポイント200pt
if ((href.absolutePath == location.href) && !href.fragment) {

上記(yuga.jsの78行目)を次のように変更してみてください。

if ((href.absolutePath == location.href || href.absolutePath == location.href + 'index.html') && !href.fragment) {


【追記】

#によるページ内の特定の箇所へのリンクでも同様の動作にしたい場合は、代わりに次のようにしてみてください。

var uri = location.href.toString().replace(/#.*$/, '');
if ((href.absolutePath == uri || href.absolutePath == uri + 'index.html') && !href.fragment) {

  • id:snoopy_japan
    ありがとうございます、おかげで実装できることだできました。
  • id:rouge_2008
    たくさんのポイントといるかをありがとうございました。

    ちょっと気になる所があったので修正してみました。
    カレントと認識された場合に「class="current"」、親と認識された場合に「class="parentsLink"」が付与されるようになっていますが、「親/index.html」を親と認識していなかったので、認識するように変更してみました。
    他、「http://example.jp/sample/」と「http://example.jp/sample/index.html」はカレントと認識するように変更しました。(※デフォルトでは、「http://example.jp/sample/index.html」は「http://example.jp/sample/」を親と認識します。)

    (※78行目から※)
    var uri = location.href.toString().replace(/(index\.html)?(#.*)?$/, '');
    var link = href.absolutePath.toString().replace(/(index\.html)?(#.*)?$/, '');
    if ((link == uri) && !href.fragment) {


    (※上記修正後の84行目※)
    } else if (0 <= location.href.search(href.absolutePath)) {

    上記を次のように変更します。

    } else if (0 <= location.href.search(href.absolutePath.toString().replace(/index\.html(#.*)?$/, ''))) {


    もし必要でしたら試してみてください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません