如果启用JavaScript,如何在网页上生成不同的链接?

Jak*_*ski 1 javascript graceful-degradation unobtrusive-javascript

我试图遵循不引人注目的JavaScript /优雅降级的技术.我想在启用JavaScript时以及关闭JavaScript时使用不同的链接提供页面.

例如,当JavaScript关闭时,链接就是

<a href="script.cgi?a=action">
Run Code Online (Sandbox Code Playgroud)

并且当JavaScript打开时

<a href="script.cgi?a=action;js=1">
Run Code Online (Sandbox Code Playgroud)

(或类似的东西).

链接的两个版本(使用JavaScript和不使用JavaScript)都会导致服务器端脚本,但具有不同的参数.在JavaScript关闭时要调用的版本在服务器上执行的操作更多,因此在那里检测JavaScript是非生产性的(例如,从非JavaScript的服务器脚本重定向到另一个版本window.location).

注意:我更喜欢不使用jQuery等JavaScript库/框架的解决方案.

Dan*_*man 6

好吧,答案是使用非Javascript链接呈现页面正常.然后获取Javascript以替换JS = 1版本的链接.

var links = document.getElementsByTagName('a');
for (var i=0;i<links.length;i++) {
    links[i].href += ";js=1";
}
Run Code Online (Sandbox Code Playgroud)