Javascript 如何在会话变量中获取锚文本?
我正在从事一个项目,在该项目中,我在母版页中链接了许多pdf文件。单击“锚定”后,页面将重定向到指定页面,并在iframe中显示pdf。现在,我希望锚定标记中的文本显示在打开pdf的页面上。 假设我有一个看起来像这样的锚:Javascript 如何在会话变量中获取锚文本?,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,我正在从事一个项目,在该项目中,我在母版页中链接了许多pdf文件。单击“锚定”后,页面将重定向到指定页面,并在iframe中显示pdf。现在,我希望锚定标记中的文本显示在打开pdf的页面上。 假设我有一个看起来像这样的锚: <a href="<%= ResolveUrl("~") %>Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf">News Letter</a>
<a href="<%= ResolveUrl("~") %>Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf">News Letter</a>
现在我希望文本“新闻信”显示在重定向页面上。
我想我可以通过在session变量中保存文本来实现这一点,但是如何在session变量中保存锚文本而不为锚标记指定任何id或类呢?有人能帮我吗?您可能正在寻找QueryString而不是session,您已经在传递路径,也在传递锚文本。您需要在创建锚定标记时将其添加到url
<a href="<%= ResolveUrl("~") %>Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf&aText=News Letter">News Letter</a>
编辑您不能在创建查询字符串时更改它,然后可以在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();
});
您可以使用javascript动态编写内容:
<a href="<%= ResolveUrl("~") %Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf">News Letter</a>
<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>
Javascript:
<a href="<%= ResolveUrl("~") %Main_Content.aspx?open=Departments/HR/NewsLetter/newsletter_dec_2014.pdf">News Letter</a>
<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>
函数openWin(t,u){
docstring='';
win=window.open();
newdoc=win.document;
新的书面文件(t);
newdoc.write(docstring);
newdoc.close();
}
var elements=document.getElementsByTagName('a');
for(var i=0,len=elements.length;i
或者使用URL和test作为参数调用不同的地址,并在服务器端生成文档
我不确定这将如何与链接点击行为,但它可能是值得一试
链接不应该被修改。你可以试试这个
$("a").click(function (e) {
if($(this).attr("href").match(".pdf$"))
{
window.location.href = $(this).attr("href") + "&title=" + $(this).text();
e.preventDefault();
}
});
在“Main_Content.aspx”的服务器端
为什么需要id或类才能在会话中放置锚文本?我不需要id或类,我只想在单击锚时将锚文本保存在会话变量中:)我认为@Adil的解决方案是完美的。不,在这种情况下对我没有帮助不,我不想在查询字符串中添加这个,因为有数百个文件链接,所以我无法更改将它们全部删除,建议我使用javascript或jquery或任何技巧:)未获取查询字符串中的值我使用了:$('a.sendtext'),单击(函数(事件){您是否将类分配给锚定标记并使用了最后两个解决方案?不,我没有分配任何类,我只是使用了上面标记为答案的解决方案:)如果您不指定类,它将应用于页面上的所有锚点。今天可能是正确的,但明天可能会出现问题。在更改DOM元素时,我们必须明确。text,而不是test。对不起,实际上问题是项目中链接了许多文件,我无法更新整个项目中的锚点标记,但我支持您的回答谢谢…我的支持:)更新了,所以href就不用管了。如果不以某种方式修改链接,添加onclick事件、添加id、添加类,就无法做到这一点。否则为所有链接添加事件侦听器会产生大问题。非常感谢,它解决了我的问题。这是解决此问题的非常酷的解决方案,而不修改e主播或任何标签非常感谢:):)我会支持你的答案(y)我的支持:)