0

私はこの分野の専門家ではありません。いくつかの検索を行いましたが、探しているものが正確に見つかりませんでした。うまくいけば、それはかなり簡単です。

Web サーバーが組み込まれたソフトウェア制御システムに取り組んでいます。このシステムのナビゲーション中に、Web ブラウザの [戻る] ボタンを使用するしかないという点がいくつかあります (残念ながら、私は知っています)。

これを使用するオペレーターは、通常、すべてのナビゲーションを画面上で行うため、突然「抜け道がない」ディスプレイが表示されると、混乱を招く可能性があります。

layout.xslファイルを修正して戻るボタンを追加したいと思います。(システムが ActiveX に基づいているため、重要な場合は Internet Explorer のみになります。)

ファイルの関連部分は次のとおりです。

<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'">

これらは、表示したくない既存のボタンを除外するために私が追加したものです。

私が望んでいるのは、back buttonInternet Explorer にコマンドを送り返すという同様のテンプレートを用意することです。次に、最初にテンプレートを呼び出して、back buttonそれが一番左の項目になるようにします。

事前に感謝します。追加情報が必要な場合はお知らせください。

4

2 に答える 2

1
<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/>
于 2013-05-14T21:38:47.003 に答える
0
    <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>

これが最終的なコードです。ボロディンの提案のおかげで、多くの「if」ステートメントをクリーンアップしました。また、新しいテンプレートを追加する代わりに、history.back() リンクを使用して Button テンプレートへの新しい呼び出しを追加しました。

助けてくれてありがとう

于 2013-05-15T13:18:11.873 に答える