我有一个网页,其中包含100多个链接来控制一件硬件,我希望某些(来宾)用户能够看到整个页面,但基本上呈现/服务同一页面而没有任何href =“链接。
我已经基于用户设置了登录机制和会话/ Cookie,我只是想知道是否有一种更有效的方法来隐藏/删除所有的href =“链接,而不是将它们分别封装在IF ELSE中声明。
例如,这就是我今天所拥有的...
<% If Session("adminuser") = "true" Then %><a target="hidden" href="/trigger.asp?cmd=ext-access&data=on">External Access is off</a>
<% Else %>External Access is off
<% End If %>
答案 0 :(得分:1)
以下是一种快速解决方案。每个链接都封装在这样的东西中:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
class FuelTankTest {
FuelTank tank;
@BeforeEach
void setUp() throws Exception {
tank = new FuelTank(60, 10);
}
//The csv source translates to the arguments in
//void test(double amount, double expectedTankLevel) like following:
//"elm1, elm2" -> double amount = elm1 and double expectedTankLevel = elm2
@ParameterizedTest
@CsvSource({ "10,20", "20,30", "30.4711,40.4711" })
void test(double amount, double expectedTankLevel) {
tank.fill(amount);
assertEquals(expectedTankLevel, tank.getTankLevel(), "There is a leak in tank");
}
}
如果允许,以下JavaScript将动态插入链接:
<span class="admin-action" data-action="/trigger.asp?cmd=ext-access&data=on">External Access is off</span>
<span class="guest-action" data-action="/trigger.asp?cmd=hello-world&data=on">Hello World</span>
答案 1 :(得分:1)
将链接包装在函数中
function adminLink( linkTarget, linkText ) {
if( Session("adminuser") = "true" ) Then
adminLink = "<a target='hidden' href='" & linkTarget & "'>" & linkText & "</a>"
else
adminLink = linkText
end if
end function
然后为每个链接做一个
<%=adminLink( "/trigger.asp?cmd=ext-access&data=on", "External Access is off" )%>
您可能可以泛化该功能,以便在类似情况下在整个站点使用它。