我正在开发一个项目,我在主页面中链接了许多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变量中?有人可以帮帮我吗?
答案 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调用不同的地址并测试作为参数,并在服务器端生成文档。
我不确定链接点击会如何表现,但可能值得一试。
链接不应该被修改。