0

我无法让我的网站在 JS 和没有JS 的情况下都能正常运行。

我有两个独立版本工作得很好。现在,我有一个相册。在 Javascript 版本中,有一个FancyBox。相册中有所有照片的概览,单击图像将在 FancyBox 中打开该图像。在体面的浏览器中,url 甚至会随着ID图像的变化而变化,因此您可以轻松地共享图像。当使用图像调用 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-version 的背景中使用整个 js-version,因为这是一个相当大的问题,并且还需要两个额外的查询。为了尝试规避这些麻烦,如果启用了 JS,我使用 JS 设置了一个 cookie,这样我就可以在 PHP 中将其过滤掉。然而,这个问题是,当用户启用了 JS 并且突然不再启用时,它仍然会显示 JS 版本,因为 cookie 仍然存在。

此类问题的常见解决方案是什么?我应该把它全部放在后台,还是忽略某些人可能需要按下按钮才能返回 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 回答