使用xslt / xml / js创建动态生成的弹出窗口

时间:2013-09-16 20:44:31

标签: javascript jquery xml xslt

我一直在用墙撞击墙壁一段时间。它似乎很简单,但我尝试的似乎没有任何结果,也许一些专家的眼睛可以解释这个问题。

我有一组xml文档(它们实际上是TEI编码的字母)。每个xml文档都包含对人员的引用。这些引用用persName标记表示。每个persName也由ref属性标识。每封信中还有一个包含有关每个persName的传记信息。

我想做的是,允许信中的每个名字成为可打开新窗口或弹出窗口的可点击链接,并在该窗口中显示有关您的人的正确传记信息刚刚点击。

以下是使用refs查找persNames的XSL,并将它们包含在一个带有一些js的标签中以打开一个新窗口(我没有嫁给一个新的窗口,如果有一些天才知道某种方式使这个显示在一个漂亮的灯箱或其他东西,甚至更好)。

   <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代码“知道”被点击的人,并且当新窗口弹出时将显示正确的引用但我不确定如何能够使用该变量以便为该人提取正确的信息点击。有什么想法吗?

0 个答案:

没有答案