在查看某个页面的源代码时,我发现这个Javascript代码低于正常的样式表定义:
<script type="text/javascript">
if('' != '')
{
document.write("<link type='text/css' rel='stylesheet' href='style.css' />");
}
</script>
有人可以启发我,将这样的内容添加到HTML页面的目的是什么(可能)?要么我今天早上缺少好的大咖啡,要么这部分Javascript 永远不会执行,因此这个特殊的样式表永远不会添加到文档中。
那么,将这样的 thing 添加到HTML代码的原因是什么?没有(错误/错误)或我错过了一些非常明显的东西?
答案 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作为服务器端代码,它可能是其他语言