document.write stylesheet if语句总是为false

时间:2013-12-19 06:49:43

标签: javascript html css stylesheet

在查看某个页面的源代码时,我发现这个Javascript代码低于正常的样式表定义:

<script type="text/javascript">
    if('' != '')
    {
        document.write("<link type='text/css' rel='stylesheet' href='style.css' />");
    }
</script>

有人可以启发我,将这样的内容添加到HTML页面的目的是什么(可能)?要么我今天早上缺少好的大咖啡,要么这部分Javascript 永远不会执行,因此这个特殊的样式表永远不会添加到文档中。

那么,将这样的 thing 添加到HTML代码的原因是什么?没有(错误/错误)或我错过了一些非常明显的东西?

6 个答案:

答案 0 :(得分:4)

有一种情况认为这是有道理的,尽管它仍然可能是凌乱的 - 如果服务器会在那里打印一个值以使它不相等,那么将使用样式表。

因此,在php中的服务器上,它可能如下所示:

echo "if('{$someVar}' != '')" 

如果$someVar是一个空字符串,那么您将获得当前拥有的页面源代码。也许有些情况下它不是空的。如果在代码中,$someVar可以被赋予(例如)foo的值,那么页面源会说:

if('foo' != '')
    {
        document.write("<link type='text/css' rel='stylesheet' href='style.css' />");
    }

如果是这种情况,那么继续在服务器上执行整个过程会更有意义(在下面的评论中注明用户:still_learning)。

if($someVar != '') echo "<link type='text/css' rel='stylesheet' href='style.css' />";

这确实让人更加相信这是一个简单的开/关开关,供开发人员使用,但这并没有被删除。只需删除!即可再次激活样式表。

答案 1 :(得分:1)

也许这个页面来自jsp或者像freemarker这样的模板引擎,需要先编译源代码来生成这个结果。

答案 2 :(得分:1)

这从未使用过,因为

'' != ''

将始终返回FALSE。

另一方面,比较的字符串可能已经在服务器端动态输出,因此您应该首先看到正在发生的事情。也许这不是唯一可能的输出,并且存在字符串实际上不同的情况。

虽然如果是这样的话,我建议在服务器端进行比较,只在需要时输出脚本。

答案 3 :(得分:1)

据我所知,这不会被执行,因为这里的条件总是假的。如果这种情况可以动态改变,那么我们可以考虑另一种情况。

答案 4 :(得分:1)

当您查看页面源时,您可能需要检查代码。

if('' != '')
    {
        document.write("<link type='text/css' rel='stylesheet' href='style.css' />");
    }

如果它是动态代码,它可能会将css添加到页面中或者您只需删除它,因为它永远不会将css添加到页面。

答案 5 :(得分:1)

这个脚本肯定没有在您身边执行。

但是脚本中可能存在可能在其他情况下执行的服务器端变量

例如

<script type="text/javascript">
    if('<%=device%>' != '<%=mobile%>')
    {
        document.write("<link type='text/css' rel='stylesheet' href='style.css' />");
    }
</script>

其中<%=device%><%=mobile%>可以是某些服务器端变量

注意 - 我使用php作为服务器端代码,它可能是其他语言