6

ホームページから、商品リストページへのリンクがあります。製品ページには展開/折りたたみdivがあります。

URL番号に応じて、適切なdivを展開する必要があります。

したがって、ホームページのリンクは

<a href="/out-products.php#healthysnacks">healthy snacks</a>

上記のリンクをクリックすると、製品ページでこれをアクティブにしようとしています。

<a href="javascript:ReverseDisplay('products4')" id="healthysnacks"> Healthy Snacks</a>

ハッシュタグをチェックしてクリックをトリガーする他のコードをいくつか試しましたが、どれも正しく機能していませんでした。これは、ReverseDisplayjsが原因だと思います。どんな洞察も助けてください。

ありがとう

4

3 に答える 3

6

製品ページのドキュメント準備機能で次の変更を行うことができます。

簡単な修正: jQuery id-selectorは#elementIdであるため、window.location.hash値をidセレクターとして使用し、それを使用して目的の要素をターゲットにすることができます。

if ( window.location.hash ) {
    $(window.location.hash).click(); //clicks on element specified by hash
}

より良い:上記に加えて、マークアップからjsを削除します。

$('#healthysnacks').click(function(e) {
    e.preventDefault();
    ReverseDisplay('products4');
});

次に、これを行った後$(window.location.hash).click()、上記のコードを使用します。また、リンクを次のように変更します。

<a href="#" id="healthysnacks"> Healthy Snacks</a>
于 2012-08-10T05:00:47.027 に答える
3

hashオブジェクトのプロパティを使用できますLocation。次のことを試してください。

$(document).ready(function(){
   var id = window.location.hash;
   $(id).trigger('click')
})

プロトコルの代わりにjQueryを使用しているため、jQueryメソッドjavascript:を使用できます。click

$('#healthysnacks').click(function() {
   // do something here
})
于 2012-08-10T04:59:40.177 に答える
3

ここで提案された答えは有効ですが...

xSSの脆弱性につながる可能性があるため、jQueryセレクターでwindow.location.hashを使用する場合は、細心の注意を払ってください。$()はHTML要素を作成することもでき、注意深く構築されたハッシュ値を使用して、誰かが任意のJavaScriptコードを実行する可能性があります。

例えば

http://my-website.com/about#'><img src=x onerror=alert(/XSSed/)>

my-websites.com/aboutページがjQueryセレクター内でwindow.location.hashを使用している場合、そのonerrorコードが実行されることになります。

于 2012-10-18T22:01:40.303 に答える