我已将 DSpace 搜索框修改为如下内容:
用户在搜索框中输入搜索字符串,然后按回车键以获取搜索结果。这会刷新页面,因此用户最初输入的搜索字符串会丢失。我想在搜索框中保留搜索字符串。我正在尝试使用 javascript cookie 来实现这一点,因为我觉得它是最简单的解决方案之一。但我没有得到想要的结果。这是搜索表单的代码:
<form id="ds-search-box" method="post">
<xsl:attribute name="action">
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath']"/>
<xsl:value-of
select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='search'][@qualifier='simpleURL']"/>
</xsl:attribute>
<div class="wrap right rounded">
<input type="text" class="search left rounded" id="text-search" placeholder="Type name of book title, author, subject , keywords...">
<xsl:attribute name="name">
<xsl:value-of
select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='search'][@qualifier='queryField']"/>
</xsl:attribute>
<!--</input>
<input class="button-field" type="submit" i18n:attr="value"
value="xmlui.general.go">-->
<xsl:attribute name="onsubmit">
<xsl:text>
var a = document.getElementById("text-search");
document.cookie = a.value;
var s=document.cookie;
alert(s);
var form = document.getElementById("ds-search-box");
form.action=
</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of
select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath']"/>
<xsl:text>/handle/" + radio.value + "</xsl:text>
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='search'][@qualifier='simpleURL']"/>
<xsl:text>" ; </xsl:text>
<xsl:text>
</xsl:text>
</xsl:attribute>
</input>
</div>
</form>
我将文本框的值保存在 cookie 中。
我已经将此代码包含在page-structure.xsl
文件的 javascript 部分中以访问 cookie:
<script type="text/javascript">
document.getElementById("text-search").value=document.cookie;
</script>