2017-12-28 6 views
0

私は〜6個のボタンが付いたメニューがあり、それぞれが同じページにつながっています。 そのページには、ドロップダウンメニューがあります。 6つのボタンの目的は、それらのボタンの1つをクリックすると、ページがリダイレクトされ、ドロップダウンメニューが開き、正しいタブになることです。このページにつながったボタンを知っている

しかし、すべてのスクリプトは、ページがリダイレクトされたときに殺されたので、私はこのような何かを傾ける:

<body> 
<a id="buttonID" onclick="GoToPage('buttonID')">All</a> 
</body> 

<script> 
function GoToPage(buttonID){ 
    redirect to page.html; 
    open menu to tab related to buttonID 
} 
</script> 

代わりに、私はおそらく、ページが読み込まに実行される関数を作成する必要があり、その後の試みでしょうどのボタンから取得したのかを特定し、それに基づいて正しい構成にメニューを開きます。

window.onload = .... 

そして、どのように私はこれにページをリダイレクトされたボタン渡すことができるようになります:

は、私のようなものを使用する必要がありますか?

+1

ボタンIDをクエリパラメータとして渡すことができます。何か、window.location = 'https://yoursite.com?button=buttonID'のようなものです。あなたはサーバー上のボタンのパラメータの値をキャプチャし、適切にレンダリングすることができます – cdoshi

答えて

0

ドロップダウンメニューを開くには、ソースページではなく宛先ページが必要です。サーバがfragment identifierにその情報を送信する、ドロップダウンメニューの状態を気にしないので:受信側の

<a id="buttonID" href="page.html#all">All</a> 

を、あなたは

document.addEventListener('DOMContentLoaded', (event) => { 
    let target = window.location.hash; // target = "#all" 
    // modify your menu as appropriate 
}); 

と識別子を取得することができloadイベントは、」doesnのページが完全に読み込まれるまで画像、スタイルシート、すべてを起動します。ドロップダウンメニューを変更するには、それを必要としないので、代わりにDOMContentLoadedイベントを使用してください。 HTMLページが読み込まれ、解析され、DOM操作の準備が整うと起動します。

+0

あなたは私の仲間です。私はwindow.location.hashについて知らなかった。私は昨夜html/css/javascriptを始めました。そしてこの問題は本当に私の進歩にレンチを投げました。 –

関連する問題