1

私はこれでしばらく頭を壁にぶつけていました。それはとても単純に思えますが、私が試みたものは何もうまくいかないようです。

私は xml ドキュメントのコレクションを持っています (これらは実際には TEI でエンコードされた文字です)。各 xml ドキュメントには、人物への参照が含まれています。これらの参照は、persName タグで示されます。各 persName は、ref 属性によっても識別されます。また、各 persName についての伝記情報を取り込む各文字のインクルードもあります。

私がやりたいのは、手紙の各名前がクリック可能なリンクになり、新しいウィンドウまたはポップアップが開くようにすることです。そのウィンドウには、クリックした人に関する正しい経歴情報が表示されます。 .

これは、refs で persNames を検索し、それらを js のビットを含むタグでラップして新しいウィンドウを開く XSL です (私は新しいウィンドウを開くことに結婚していません。そこにいる天才がこれを作成する方法を知っている場合)素敵なライトボックスなどに表示すると、さらに良い)。

   <xsl:template match="*:persName[@ref]">
  <!-- surround each persname with an a tag with a specific ID -->
  <head>
  </head>
  <a>
     <xsl:attribute name="href">javascript://</xsl:attribute>
     <xsl:attribute name="onclick">
        <xsl:text>javascript:window.open('</xsl:text><xsl:value-of select="$xtfURL"/><xsl:value-of select="$dynaxmlPath"/><xsl:text>?docId=</xsl:text><xsl:value-of
           select="$docId"/><xsl:text>;doc.view=personpopup;?pers=</xsl:text><xsl:value-of select="@ref"></xsl:value-of><xsl:text>','Personography','width=800,height=400,modal=yes,alwaysRaised=yes')</xsl:text>
     </xsl:attribute>
     <xsl:value-of select="*"></xsl:value-of>
  </a>

リンクをクリックすると、ここに示す personpopup テンプレートに移動します

   <xsl:template name="personpopup">
  <html>
     <head>         
        <!-- SCRIPT TO GRAB PERS FROM URL AND MATCH IT IN THE PERSONOGRAPHY -->
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">

           var currenturl = window.location.href;
           var currentperson = currenturl.substring(currenturl.indexOf('pers=#') + 6);

           document.write(currentperson);

        </script>
        <title></title>
     </head>
     <body>
        <p>
           <h3><xsl:value-of select="/*/*:text/*:body/*:div[@type='ographies']/*:listPerson/*:person[@ref'personclicked']/*:info"></xsl:value-of></h3>
           <a>
              <xsl:attribute name="href">javascript://</xsl:attribute>
              <xsl:attribute name="onClick">
                 <xsl:text>javascript:window.close('popup')</xsl:text>
              </xsl:attribute>
              Close this Window
           </a>
        </p>
     </body>
  </html>

ヘッダー内の js コードは、ref 変数を新しいウィンドウに渡す試みの一部でした。js コードは、誰がクリックされたかを「認識」しており、新しいウィンドウがポップアップしたときに正しい参照を表示しますが、その変数をどのように使用して、その人の正しい情報を引き出すことができるかわかりません。クリックしました。何か案は?

4

0 に答える 0