Javascript 返回按钮
我不是这方面的专家。我做了一些搜索,但没有找到我要找的东西。希望它相当简单 我正在开发一个内置web服务器的软件控制系统。在这个系统的导航过程中,有几点是唯一的出路是使用web浏览器后退按钮(不幸的是,我知道) 对于使用此功能的操作员,他们通常在屏幕上进行所有导航,突然出现“无路可走”的显示可能会造成混乱 我想修改Javascript 返回按钮,javascript,html,xml,xslt,xslt-1.0,Javascript,Html,Xml,Xslt,Xslt 1.0,我不是这方面的专家。我做了一些搜索,但没有找到我要找的东西。希望它相当简单 我正在开发一个内置web服务器的软件控制系统。在这个系统的导航过程中,有几点是唯一的出路是使用web浏览器后退按钮(不幸的是,我知道) 对于使用此功能的操作员,他们通常在屏幕上进行所有导航,突然出现“无路可走”的显示可能会造成混乱 我想修改layout.xsl文件以添加一个后退按钮。(如果有必要的话,它只会是Internet Explorer,因为该系统基于ActiveX。) 以下是该文件的相关部分: <table
layout.xsl
文件以添加一个后退按钮。(如果有必要的话,它只会是Internet Explorer,因为该系统基于ActiveX。)
以下是该文件的相关部分:
<table id="Menu" class="Header" border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td width="100%">
<table class="menuBar" border="0" cellspacing="0" cellpadding="0">
<tr height="0">
<xsl:for-each select="Links/Link">
<xsl:if test="text() != 'Lists'">
<xsl:if test="text() != 'Database'">
<xsl:if test="text() != 'Favorites'">
<xsl:if test="text() != 'Log Off'">
<xsl:if test="text() != 'Help'">
<xsl:call-template name="Button">
<xsl:with-param name="href" select="@href"/>
<xsl:with-param name="text" select="text()"/>
<xsl:with-param name="last" select="boolean( position() = count( ../Link ) )"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:for-each>
<th class="rightbar" align="right" valign="top"/>
</tr>
</table>
</td>
</tr>
</table>
<xsl:template name="Button">
<xsl:param name="href"/>
<xsl:param name="text"/>
<xsl:param name="last"/>
<th width="auto" height="20" class="deselected" valign="center">
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="$href"/>
</xsl:attribute>
<xsl:value-of select="$text"/>
</xsl:element>
</th>
<th width="5" class="deselected" valign="middle">
<img src="/file/images/submenumid.png" width="5" height="20"/>
</th>
</xsl:template>
您将看到该表多次调用按钮模板。如果你对这些台词感到困惑
<xsl:if test="text() != 'xxxx'">
我添加这些按钮是为了过滤掉我不想显示的现有按钮
我希望有一个类似的模板,名为backbutton
,它将向internet explorer发送一个back命令。然后我会首先调用back按钮
模板,使其成为最左边的项
提前感谢,如果需要任何其他信息,请告诉我
<xsl:template name="BackButton">
<xsl:param name="last"/>
<xsl:call-template name="Button">
<xsl:with-param name="href" select="javascript:window.history.back()"/>
<xsl:with-param name="text" select="Go back"/>
<xsl:with-param name="last" select="$last"/>
</xsl:call-template>
<xsl:template/>
javascript:history.back()
回去
这是最终确定的代码。多亏了博罗丁的建议,我清理了许多“如果”的陈述。
我还使用history.back()链接添加了对按钮模板的新调用,而不是添加新模板
感谢大家的帮助我应该注意,参数都来自代码示例之外。但这对这个问题来说并不重要。即使在XSLT1.0中,也有一个
和。不需要那些嵌套的xsl:if
元素!
<table id="Menu" class="Header" border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td width="100%">
<table class="menuBar" border="0" cellspacing="0" cellpadding="0">
<tr height="0">
<xsl:call-template name="Button">
<xsl:with-param name="href">javascript:history.back()</xsl:with-param>
<xsl:with-param name="text">Go Back</xsl:with-param>
<xsl:with-param name="last" select="false()"/>
</xsl:call-template>
<xsl:for-each select="Links/Link">
<xsl:if test="text() != 'Lists'
and text() != 'Database'
and text() != 'Favorites'
and text() != 'Log Off'
and text() != 'Help'">
<xsl:call-template name="Button">
<xsl:with-param name="href" select="@href"/>
<xsl:with-param name="text" select="text()"/>
<xsl:with-param name="last" select="boolean( position() = count( ../Link ) )"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
<th class="rightbar" align="right" valign="top"/>
</tr>
</table>
</td>
</tr>
</table>