0

JS を使用する場合と使用しない場合の両方で、自分のサイトを適切に機能させるのに問題があります。

2 つのスタンドアロン バージョンが正常に動作しています。今、私は写真アルバムを持っています。Javascript 版にはFancyBoxがあります。アルバム内のすべての写真の概要があり、画像をクリックすると FancyBox でその画像が開きます。きちんとしたブラウザではID、画像の URL も変わるので、簡単に画像を共有できます。Javascript バージョンが画像で呼び出されると、FancyBox が自動的に読み込まれます。

問題は、non JS version. ここでは、アルバム内のすべての画像の概要が同じですが、リンクが異なります。これを解決するために、次のスクリプトを使用します。

<noscript><!-- all the images here --></noscript>

非 JS バージョンの場合、および

<div class='jsonly'><!-- all the images here --></div>

<noscript><style>.jsonly{display:none;}</style></noscript>

ここでの問題は、php バージョンのバックグラウンドに js バージョン全体を配置したくないということです。これらの問題を回避するために、JS が有効になっている場合は JS を使用して Cookie を設定し、PHP でそれを除外できるようにしました。ただし、これに関する問題は、ユーザーが JS を有効にしていて突然無効にした場合でも、Cookie が残っているために JS バージョンが表示されることです。

このような問題の一般的な解決策は何ですか? すべてをバックグラウンドに置くべきですか、それとも JS バージョンに戻るためにボタンを押す必要がある人がいるかもしれないという事実を無視するべきですか?

4

1 に答える 1

1

ロジックが逆になっています。JS が有効になっている場合にのみ何かを表示したい場合は、デフォルトでそのコンテンツを非表示にしてから、JS を使用して表示します。

<div class="jsonly">...</div>

<style>
   .jsonly {
       display: none; /* hide by default */
   }
</style>
<script>
    $('.jsonly').show(); // will only work if jquery/JS is available.
</script>
于 2013-04-12T16:50:22.867 に答える