我正在进行一个项目,在该项目中,我在主页中链接了许多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作为参数调用不同的地址,并在服务器端生成文档。
我不确定点击链接后会如何表现,但这可能值得一试。
链接不应该被修改。