有没有什么方法判断浏览器是否支持 js

2019-09-05 08:30:49 +08:00
 yitd
目前解决方案是进入页面用 js 设置 cookie 后刷新
PHP 判断没有 cookie 就不允许访问
想了一晚上总感觉不完美,有没有别的解决方案?
效果要达到不支持 js 就不允许访问
5564 次点击
所在节点    程序员
48 条回复
RV0n
2019-09-05 08:43:02 +08:00
可以看一下 <noscript> 这个标签
yitd
2019-09-05 08:52:44 +08:00
@RV0n 这个不行 不是想要的效果 需要判断不支持 js 就不返回任何内容给浏览器
kyuuseiryuu
2019-09-05 08:56:33 +08:00
用随便一个 spa 框架写网站,不支持 js 打开自然就是一片空白。
mengkun
2019-09-05 09:05:18 +08:00
你是想防爬虫?
z939211863
2019-09-05 09:06:01 +08:00
有浏览器不支持 js 么?
momocraft
2019-09-05 09:08:08 +08:00
X 问题是什么

> #5
w3m 就支持
redbuck
2019-09-05 09:09:21 +08:00
进入页面用 JS 插入一个 iframe 引你得页面
redbuck
2019-09-05 09:09:39 +08:00
@z939211863 用户可以禁用
qiaobeier
2019-09-05 09:11:00 +08:00
没啥好办法,只能渲染时使用各种方法检查客户端是否禁用脚本,再存入 cookie。至于第一次,尝试使用 noscript 或者 css 去做些预处理。
lqzhgood
2019-09-05 09:18:24 +08:00
CSS 默认 display: none ~
只显示一个 <noscript> 告诉用户没有 JS 不能显示呗。

没有上下文 不知道 LZ 需求是啥~
我感觉是一个 A B 问题。LZ 有 A 问题觉得 B 能解,问了半天 B 结果发现 C 才是最优解。
passerbytiny
2019-09-05 09:19:12 +08:00
很明显,楼主想要的是“不给 js 权限就不让用”,你们回答“怎么在浏览器不支持 js 的时候友好显示”,跑题了。
yitd
2019-09-05 09:21:32 +08:00
@passerbytiny 你是明白人
GzhiYi
2019-09-05 09:23:05 +08:00
LZ 的意思是后端判断前端有没开启 js 支持吧?
yitd
2019-09-05 09:23:08 +08:00
@lqzhgood 不是显示问题,noscript 实际上网页全部内容还是给浏览器了
yitd
2019-09-05 09:26:21 +08:00
@GzhiYi 差不多 不支持就返回空白内容 包括源码
asdjgfr
2019-09-05 09:29:24 +08:00
先返回一个静态页,里面用 js 获取客户端的相关信息 ua,时间戳之类的,然后调用接口,如果接口收到了就把真实的内容返回出去,否则就返回一个没权限的页面呗
jinliming2
2019-09-05 09:29:39 +08:00
@z939211863 可以禁用。一般为了严格安全的时候都是直接禁用 js 的。tor 默认禁用不安全 js。
kyuuseiryuu
2019-09-05 09:33:19 +08:00
JS 执行是在获取数据之后的事儿,除非浏览器能在请求的时候主动告诉你支不支持 JS 执行。
你这需求有点像:能不能知道刮刮卡有没有中奖,没中奖就不刮。
yitd
2019-09-05 09:34:19 +08:00
@asdjgfr 不错,这个方法比 cookie 好一点
laravel
2019-09-05 09:35:04 +08:00
<noscript>
<img src="https://www.liulangmao.org" alt="">
<iframe src="https://www.liulangmao.org" frameborder="0"></iframe>
</noscript>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598066

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX