我正在构建一个经典的 ASP 页面,用户可以通过传递查询字符串参数(例如,
?bgColor=#ffcc00
)动态更改背景颜色。虽然像 red
这样的命名颜色工作正常,但十六进制值(例如 #ffcc00
)并不按预期应用。
这是我当前方法的简化示例:
<%
Dim bgColor
bgColor = Request.QueryString("bgColor")
If bgColor = "" Then
bgColor = "white" ' Default background color
End If
%>
<!DOCTYPE html>
<html>
<head>
<title>Dynamic Background</title>
</head>
<body style="background-color: <%= bgColor %>;">
<p>Change the background color using the URL query string (?bgColor=colorname or ?bgColor=#hexvalue).</p>
</body>
</html>
当我使用如下 URL 时:
http://example.com/myPage.asp?bgColor=#ffcc00
十六进制颜色不起作用,但命名颜色可以。
我的问题:
http://example.com/
)还是我需要为不同的域或环境配置额外的内容?我尝试过的:
red
)有效,但十六进制值无效。style
方法,但没有成功。如何在经典 ASP 环境中动态设置背景颜色,同时支持命名颜色和十六进制值?
请尝试以下
<%
函数 IsValidColor(颜色) 昏暗的正则表达式 设置正则表达式 = 新正则表达式 regEx.Pattern = "^(#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})|[a-zA-Z]+)$" regEx.IgnoreCase = True regEx.Global = True IsValidColor = regEx.Test(颜色) 设置正则表达式=无 结束功能
调暗背景颜色 bgColor = Request.QueryString("bgColor") 如果不是 IsValidColor(bgColor) 那么 bgColor = "white" ' 默认背景色 结束如果 %>