gpt4 book ai didi

PHP:如何确定浏览器是否支持 PHP 中的 javascript?

转载 作者:可可西里 更新时间:2023-11-01 13:57:42 25 4
gpt4 key购买 nike

我正在构建一个 AJAX 深层链接网站。

如果用户尝试使用不支持 Javascript 的浏览器访问该站点,或者它是搜索爬虫,我希望 PHP 加载该页面的所有 HTML 代码。基本上 PHP 将返回整个页面。

相反,当用户尝试使用支持 Javascript 的浏览器访问站点时,我希望 PHP 仅返回模板代码,让 Javascript (AJAX) 处理其余部分。基本上 PHP 只会加载设计元素并让 Javascript 用内容填充它们。

我查看了 PHP 的 get_browser()功能,但它似乎不是一个可靠的工具。看浏览器是支持Javascript还是使用PHP的搜索爬虫,业界惯例是什么?


背景:

为什么我希望网站有这种行为。

因为我只想通过加载地址来加载主页:example.com ,它不向 PHP 发送任何查询,PHP 返回主页的 HTML 代码。但是,当用户尝试加载以下页面时,这会导致问题:example.com#foo .因此,对于此示例,PHP 将返回主页,一旦加载主页,Javascript (AJAX) 将更改周围的内容,以便它显示 #foo 的正确内容。 .这将使用户看到主页,因此加载时间会变慢,用户体验也不会那么好。但是,如果我的 PHP 脚本可以弄清楚,如果使用支持 Javascript 的浏览器试图加载页面,它将只返回没有内容的网站模板)并且 javascript 将用任何内容填充该模板应该为#foo 显示。另一方面,如果 Javascript 非分离浏览器或爬虫将尝试访问页面 example.com#foo , 返回首页。

我正在使用 SWFaddress ( http://www.asual.com/swfaddress/) 库进行深度链接。


编辑

谢谢大家。我没有想到使用 <noscript></noscript>之前。

这是我决定要做的。默认情况下,PHP 将加载诸如 example.com 之类的页面。或 example.com#foo (从 PHP 的 Angular 来看,这与 example.com 基本相同,因为根据定义片段不会发送到服务器)空白(只是视觉模板)与 <noscript>主页内容的标签。这样使用 javascript 的用户将看不到主页,AJAX 将根据 #foo 填充页面内容。分段。另一方面,没有 javascript 的搜索爬虫和用户将看到主页。

再次感谢。我认为这是非常简单而优雅的解决方案。如果您有任何进一步的建议,请发表评论或其他答案。

最佳答案

您不能使用 PHP 执行此操作。你可以做的是使用 noscript 标签重定向到另一个没有 javascript 的 php 页面:

<noscript>
<meta http-equiv="refresh" content="0; URL=nojavascript.php">
</noscript>

关于PHP:如何确定浏览器是否支持 PHP 中的 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com