我已经阅读过类似的问题,但似乎没有一个问题适合我。
我有一个asp网站,我认为经典(甚至不知道经典和网络之间的差异),几页都有asp扩展,有些html包括,其中一个是我想要的滑块仅在主页(default.asp)中显示,如果不是默认值,则在标记中添加div。
我知道以下是错误的,但只是为了更好地解释我的需要。
<%
if page == default.asp
include file="slider.html"
if page != default.asp
<div class="spacer-top"></div>
%>
答案 0 :(得分:3)
与ASP-classic-land中的许多前辈一样,你想要的是有条件的包含,而你遇到的问题是经典ASP不做有条件的包含。 (之所以在解析页面上的任何脚本之前很久就处理#include
指令。)
有各种解决方法涉及Execute
或其他危险的错误指令;搜索“asp conditional include”,你会找到比你讨价还价更多的东西。但是,在您的情况下,将滑块显示包含在您可以调用或不调用的子例程中可能更简单。
Slider.html:
<%
Sub DisplaySlider()
'code to display the slider (probably JavaScript, I'm guessing?)
%>
<script ...>
</script>
<%
End Sub
%>
其他页面:
<!-- #include virtual="/slider.html" -->
<%
scriptname = Request.ServerVariables("Script_Name")
If InStr(scriptname, "default.asp") > 0 Then
DisplaySlider
Else
Response.Write "<div class='spacer-top'></div>"
End If
%>
答案 1 :(得分:1)
为了增加她的答案,我觉得我应该指出系统设计在这里发挥作用。尝试将模块保持小巧简洁,将其功能定位到应用程序要求的特定方面。例如:
你明白了。
另一个想法是在global.asa
中加入常用功能,以便它们可以立即供应用于您应用中的所有模块。