如何为启用 javascript 和非启用 javascript 的站点创建两个平行的站点?
Posted
技术标签:
【中文标题】如何为启用 javascript 和非启用 javascript 的站点创建两个平行的站点?【英文标题】:how to Make two parallel universe of site for javascript-enable and non-javascript-enable? 【发布时间】:2019-01-11 18:12:17 【问题描述】:我想创建两个版本的网站,其中一个适用于 javascript-enabled 用户,另一个适用于 non-javascript-enabled 。在 javascript-enabled 版本中,我使用 AJAX 加载所有爬虫无法访问的内容。我想使用下面的代码将页面重定向到 non-javascript-enabled 版本:
<noscript>
<meta http-equiv="refresh" content="0; url=https://example.org?noscript=true" />
</noscript>
我还想在索引页面中放一些 php 脚本来检查 url 参数。 这是我的 PHP 代码:
<?php
if ($_GET['noscript'] == "true")
// This is non-javascript-enabled version
// Show all content here using WP_QUERY function
?>
现在我有一个问题。 google crawler 是否使用 non-javascript-enabled 版本访问内容?
【问题讨论】:
【参考方案1】:我认为两者兼而有之。它肯定会运行一些 JavaScript,但我也看到它显示了 <noscript>
元素内的内容结果,所以它可能会工作。
但是,您提供的 html 无效。大多数浏览器可能会接受它,但it isn't strictly valid HTML。相反,您应该使用this question 中的解决方法。
感谢您尝试为您的网站提供非 JavaScript 版本。即使 AJAX 获取的静态内容不是创建网站的最佳方式(通常最好将所有内容都保存在其中,但用 CSS 隐藏其中的一些内容),最好尝试为每个人提供完整的体验而不是把一些人丢在一边。
【讨论】:
即使启用了 javascript,谷歌爬虫也能访问内容吗? 是的。不过,我不知道它将使用哪个版本的网站来获取内容。 这样好吗?<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is a test page !</title> <?php if (!isset($_GET['jsenabled'])) echo "<script> var hostorigin = window.location.origin; window.location.href = hostorigin + '/facecartesting.php?jsenabled=true'; </script>"; ?> </head> <body> <?php if (isset($_GET['jsenabled'])) echo "JavaScript is enabled !"; else echo "JavaScript is disabled !"; ?> </body> </html>
@MortezaJamali 这是一个绝妙的方法!您应该将其添加为答案。不过有一个小改进;如果您的内容被放在页面上它)并避免必须拥有两个不同版本的页面。以上是关于如何为启用 javascript 和非启用 javascript 的站点创建两个平行的站点?的主要内容,如果未能解决你的问题,请参考以下文章