我已经用这个把头撞在墙上一段时间了。看起来很简单,但我尝试的任何方法似乎都没有解决,也许一些专家的眼睛可以阐明这个问题。
我有一组 xml 文档(它们实际上是 TEI 编码的字母)。每个 xml 文档都包含对人员的引用。这些引用用 persName 标记表示。每个 persName 也由一个 ref 属性标识。每个字母中还有一个包含,其中包含有关每个 persName 的传记信息。
我想做的是让信中的每个名字都成为一个可点击的链接,打开一个新窗口或弹出窗口,在那个窗口中将是关于你刚刚点击的人的正确传记信息.
这是使用 refs 找到 persNames 并将它们包装在带有一点 js 的 a 标签中以打开一个新窗口的 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 代码“知道”谁被点击,并在新窗口弹出时显示正确的 ref,但我不确定如何使用该变量来为那个人提取正确的信息点击。有任何想法吗?