0

jqueryアドレスを使用して、hrefリンクを次のように設定しています。

<a href="#view_profile=123">view 123</a>

住所変更イベントを呼び出す場合:

$.address.change(function(e) {
   alert(e.value);
});

予想どおり、FFとChromeの値が表示されます。

/view_profile=123

ただし、IEは次のように「/」が前に付いた完全なURLパスを返します。

/http://localhost/#view_profile=123

IEがこれを行う理由と、それを修正するための最良の方法は何ですか?私はいくつかのことを試しましたが、それは毎回同じです。

リンクパスを取得するために使用するコードは次のとおりです。

// Setup jQuery address on some elements
$('a').address();

// Run some code on initial load
$.address.init(function(e) {
  // Address details can be found in the event object
});

// Handle any URL change events
$.address.change(function(e) {
    alert(e.value);

    var urlAux = e.value.split('=');
    var page   = urlAux[0];
    var arg  = urlAux[1];

    alert("page: " + page);
    alert("arg: " + arg);

    if (page == "/view_profile") {
        ...
    }
});
4

2 に答える 2

1

回避策を見つけました。リンクにクラスタグを追加し、クラスでクリックイベントを探すと、URLを設定でき、jqueryアドレス変更イベントが正しくトリガーされます。

$(".testclass").click(function() {

    var id = null;
    if ($.browser.msie) {    
        id = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1);
    } 
    else {    
        id = $(this).attr('href').substr(1);
    }

    alert("ID: " + id );

    location.href = "#view_profile=" + id; 
    return false;
});

また、href値を次のようにIDに設定する必要がありました。

<a href="#123" class="testclass">123</a>
于 2011-09-07T17:50:56.503 に答える
0

$(this).prop( "href")を使用してURLを取得してみてください。すべてのブラウザで同じ値が得られるはずです。

編集:パス名はIEでは機能しません。

..もっとテストをするべきだったと思います。パス名はIEでは機能しません。「href」を使用するだけです

于 2011-09-02T15:49:33.720 に答える