如果启用了JS,我该如何编写HTML代码?

时间:2011-03-03 13:30:19

标签: javascript dom

  

可能重复:
  Is there a html opposite to noscript

如果JS被禁用,

<noscript>可以很容易地将HTML代码作为后备...但是如果我想要只在脚本启用时显示HTML代码呢?我可以有一个动态编写HTML的JS块,但使用常规HTML有没有更好的方法呢?

让我说我有一个链接:

<a href="test.com">This should only appear if Javascript is enabed</a>

5 个答案:

答案 0 :(得分:10)

将HTML元素与style="display:none"一起使用,将其设置为JavaScript中的display:block

示例代码(丑陋地狱,但只是为了给你一个想法)

<div id="hideThisFromNonJs" style="display:none">
Bla bla bla
</div>

<script type="text/javascript">
document.getElementById('hideThisFromNonJs').style.display='block';
</script>

答案 1 :(得分:3)

  

我可以有一个动态编写HTML的JS块,但使用常规HTML有没有更好的方法呢?

不幸的是,没有,没有。你必须使用某种形式的JavaScript。

我猜你可以设置一个类或CSS隐藏的东西:

<span class="jsonly">etc</span>

然后你可以运行类似的东西:

$('.jsonly').show();

答案 2 :(得分:3)

<style type="text/css" media="all">
  #test { display:none }
</style>
...
<a id="test" href="test.com">...</a>
...
<script type="text/javascript">
  document.getElementById('test').style.display = 'inline'; // or 'block', or whatever.
</script>

答案 3 :(得分:0)

我们通过给元素一个css类来定义它,将它们设置为display:none并用JS显示它。

答案 4 :(得分:0)

不确定这是否是您要找的,但如果您给元素一个样式,请说“hasjs”

.hasjs{
    display: none;
}

然后用一些jQuery删除它。

$('.hasjs').removeClass('hasjs');