如何在Session变量中获取锚文本?

时间:2016-05-10 04:43:02

标签: javascript c# jquery asp.net

我正在开发一个项目,我在主页面中链接了许多pdf文件。点击锚点,页面重定向到指定的页面,并在iframe中显示pdf.Now我希望显示锚标记中的文本在pdf打开的页面上。 考虑我有一个看起来像这样的锚:

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

现在我想要文字&#34;新闻通讯&#34;显示在重定向的页面上。 我想我可以通过在会话变量中保存文本来实现这一点。但是如何在没有为锚标记指定任何id或类的情况下将锚文本保存在Session变量中?有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:3)

你可能正在寻找QueryString而不是session,你已经在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();
});

答案 1 :(得分:2)

你可以试试这个

$("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"];

答案 2 :(得分:1)

您可以使用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调用不同的地址并测试作为参数,并在服务器端生成文档。

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

链接不应该被修改。