Javascript 页面的打印版本。我想附加相对链接的完整url

Javascript 页面的打印版本。我想附加相对链接的完整url,javascript,jquery,Javascript,Jquery,当media type=print时,我使用的是一个CSS文件,它会将链接地址附加到每个链接的内容中。与外部页面的绝对链接没有问题,但与我的网站上的其他页面的相对链接有问题,这些页面并不总是处于链接的同一文件夹级别 到目前为止: 我已经确定了我希望显示的链接: $(".TreasuryLink").each(function(i) { var thisLink = $(this).attr('href'); }); 再一次,我的问题是检索完整的url,其中的链接可能会转到站点文件结构中的不同

当media type=print时,我使用的是一个CSS文件,它会将链接地址附加到每个链接的内容中。与外部页面的绝对链接没有问题,但与我的网站上的其他页面的相对链接有问题,这些页面并不总是处于链接的同一文件夹级别

到目前为止:

我已经确定了我希望显示的链接:

$(".TreasuryLink").each(function(i) { 
var thisLink = $(this).attr('href');
});
再一次,我的问题是检索完整的url,其中的链接可能会转到站点文件结构中的不同级别,如

<a href="../../anotherpage.html">

您可以在CSS样式表中定义它。尝试以下风格:

@media print{
  a:after{content:" (" attr(href) ")"}
}
这将直接在括号中的链接后面添加链接的
href
值。理论上,您可以在该规则上添加路径的其余部分,因此看起来如下所示:

@media print{
  a:after{content:" (http://www.domain.com/" attr(href) ")"}
}
@media print{
  a.TreasuryLink:after{content:" (http://www.domain.com/" attr(href) ")"}
}
但是,这将以相同的方式影响所有超链接(除非您使用CSS以不同方式选择某些
a
元素)。也就是说,如果你混合了完整链接和部分链接,你就必须创建一些不同的类或以不同的方式选择那些
a
标记

从示例代码中,您可以这样做:

@media print{
  a:after{content:" (http://www.domain.com/" attr(href) ")"}
}
@media print{
  a.TreasuryLink:after{content:" (http://www.domain.com/" attr(href) ")"}
}
但是,如果使用像
。/../file.html
这样的路径,这也不起作用。您需要将这些URL更改为类似于
/path/to/file.html
,在我看来这会更好

最终结果将使其在页面的打印版本上显示如下:

点击这里联系我们! (http://www.domain.com/contact.html)


您可以将其缩小到如下相对链接:

@media print{
  a:after{content:" (http://www.domain.com/" attr(href) ")"}
}
@media print{
  a.TreasuryLink:after{content:" (http://www.domain.com/" attr(href) ")"}
}
a[href^=“/”]:之后{ 内容:“(attr(href)”!重要;}


我知道我没有时间回顾我的代码并找到所有相关链接来添加类

这并不是我想要做的,但是学习CSS中的:after功能非常棒,值得为外部内容添加单独的类
有没有一种方法可以将:after代码添加到TreasuryLink类的现有css声明中?我的意思是,我应该将代码放在这样一个部分的什么位置:a.TreasuryLink,a.TreasuryLink{display:inline;text decoration:underline;font-weight:normal;}请记住在代码示例之前添加四个空格,以使代码更具可读性。感谢使用此肮脏但有效的修复程序为我节省了不少时间。