如何使用Meteor.com检测JavaScript是否被禁用

4
使用Meteor.com时如何检测浏览器的JavaScript是否已禁用,并在浏览器窗口中向最终用户显示消息,例如“打开JavaScript”?

1
可能是重复的问题:如何检测JavaScript是否被禁用? - Felix Kling
1
通常的<noscript>在Meteor.com框架中无法使用。有什么方法可以检测JavaScript是否被禁用? - Carl Foggin
3个回答

3
我假设您有一个layout.html或至少一个包含至少一个<head>main.html
一个技巧是将<noscript>放置在<head>而不是<body>中。
Meteor不会在JS中呈现所有内容。有一些东西被呈现在一个初始页面中,可以在查看源代码(CTRL+U)中看到证据。

1
不,Meteor使用handlebars,并且完全由Meteor服务器驱动的JavaScript。这里有一个关于Google群组的线程,提供更多信息,但没有答案。 - Carl Foggin
3
在 Meteor 中,模板解析器只会将 <head></head> 之外的内容转换成 JavaScript。因此,这段代码应该能正常工作。@CarlFoggin - Tarang
1
顺便说一下,它根本就不起作用,我使用的是$ meteor --version 发布版0.6.6.3 - 我在我的主模板和/.meteor/local/build/programs/client/app.html中尝试了<noscript>标签,无果。我在本地计算机上以开发者模式运行。以下是Google Groups线程的链接:link - Carl Foggin
@CarlFoggin 我的 Meteor 同样是 0.6.6.3 版本,在我的环境下它能够正常工作。然而,我使用 Yeoman 上的 generator-meteor,它自带 Iron-Router。我使用全局布局 (global layout) 来定义 <head>。这可能是问题所在。 - Joseph
@CarlFoggin,head标签不应该在模板标签内部。 - Cees Timmerman
显示剩余4条评论

1

我刚刚使用了这个,它真的像魔法一样起作用了

<head>
<noscript>
<style>
body {font-size: 32px;text-align: center;line-height: 100vh;}
body:after {content: "Please enable JavaScript";}
</style>
</noscript>
</head>

1

我在Chrome中使用最新的Meteor,但头部标签没有合并。只有以下内容对我有效:

<head>
    <noscript>Please enable JavaScript.</noscript>
</head>

<template name="index">
...
</template>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接