如何获取Session变量中的锚文本



我正在进行一个项目,在该项目中,我在主页中链接了许多pdf文件。单击锚点后,页面重定向到指定页面,并在iframe中显示pdf。现在我希望锚标记中的文本显示在打开pdf的页面上。假设我有一个锚,看起来像这样:

<a href="<%= ResolveUrl("~") %>Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf">News Letter</a>

现在,我希望文本"新闻信"显示在重定向页面上。我想我可以通过保存会话变量中的文本来做到这一点。但是,如何在不为锚标记指定任何id或类的情况下将锚文本保存在Session变量中?有人能帮我吗?

您可能正在寻找QueryString而不是会话,您已经在QueryString中传递了路径,还传递了锚文本。您需要在创建锚点标记时将其添加到url中。

<a href="<%= ResolveUrl("~") %>Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf&aText=News Letter">News Letter</a>

在服务器端

lblForAnchor.Text = Request.QueryString["aText"].ToString();

编辑创建查询字符串时不能更改它,然后在document.ready的DOM中加载它时可以更改它。为你的锚点指定一个类,使其具体化。

$( 'a.someclass' ).attr( 'href', function(index, value) {
  return value + '&aText=' + $(this).text();
});

点击锚的其他方法。

$( 'a.someclass' ),click(function(event) {
    window.location.href = this.href +  '&aText=' + $(this).text();
});

你可以试试这个

$("a").click(function (e) {
if($(this).attr("href").match(".pdf$"))
{
    window.location.href = $(this).attr("href") + "&title=" + $(this).text();
    e.preventDefault();
}
});

在服务器端的"Main_Content.aspx"中

strTitle = Request.QueryString["title"];

您可以使用javascript:动态编写内容

<a href="<%= ResolveUrl("~") %Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf">News Letter</a>

Javascript:

<script language="javascript">
function openWin(t,u) {
docstring='<iframe src='+u+'></iframe>';
win = window.open();
newdoc=win.document;
newdoc.writeln(t);
newdoc.write(docstring);
newdoc.close();
}
var elements = document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
var theAnchor = elements[i].innerHTML;
var theHref = elements[i].href;    
 if(theHref.match(/.pdf/)){
  openWin(theAnchor,theHref);
 }
}
</script>

或者使用URL和test作为参数调用不同的地址,并在服务器端生成文档。

我不确定点击链接后会如何表现,但这可能值得一试。

链接不应该被修改。

最新更新