2011-01-19 5 views
3

media type = printのときにCSSファイルを使用しています。これはリンクごとにコンテンツにリンクアドレスを追加します。外部ページへの絶対リンクに問題はありませんが、サイトの他のページへの相対リンクでは問題があります。は常にリンクの同じフォルダレベルではありません。これまでのところページの印刷バージョン。私は相対リンクのフルURLを追加したい

私は私が表示したいのリンクを特定した:

$(".TreasuryLink").each(function(i) { 
var thisLink = $(this).attr('href'); 
}); 

もう一度私の問題は、リンクがで別のレベルに行くことが完全なURLを取得していますサイトファイル構造

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

答えて

1

あなたはいつもあなたのCSSスタイルシートでこれを定義できます。スタイルの次の行を試してみてください:

@media print{ 
    a:after{content:" (" attr(href) ")"} 
} 

このリンクのhref値は括弧内のリンクの直後にあるものは何でも追加されます。それは次のようになりますので、あなたは理論的には、そのルールにパスの残りの部分を追加することができます。

@media print{ 
    a:after{content:" (http://www.domain.com/" attr(href) ")"} 
} 

あなたは違ったCSSを使用して、特定のa要素を選択しない限り、しかし、これはに影響するすべてのが同じように(ハイパーリンク)。つまり、フルリンク部分リンクが混在している場合は、いくつかの異なるクラスを作成するか、aタグを別々に選択する必要があります。

あなたからのサンプルコードは、このようにそれを行うことができます:あなたは../../file.htmlのようなパスを使用している場合、これはまた、動作しません、

@media print{ 
    a.TreasuryLink:after{content:" (http://www.domain.com/" attr(href) ")"} 
} 

しかし。あなたはこれらのURLを/path/to/file.htmlのように変更する必要があります。これは私の意見ではとにかく良いでしょう。

最終的な結果は、ページの印刷されたバージョンでこのように見えるようになります:

私達に連絡するにはここをクリック! (http://www.domain.com/contact.html)

+0

+1は '@media print {}'と 'a:after {}'には+1です。 :-D –

+0

これは私が探していたものとまったく同じことではありませんが、CSSの後の機能はすばらしく、外部コンテンツ用に別々のクラスを追加する価値があります。
TreasuryLinkクラスの既存のCSS宣言に:afterコードを追加する方法はありますか? –

+0

'.TreasuryLink:after' – drudge

3

次のような相対リンクにそれを絞り込むことができます:

[のhref^= "/"]:{ 後"(http://www.example.com" attr(href) ")"!important;}

私は自分のコードに戻り、クラスを追加するための相対リンクを見つける時間がないことは知っています!

+0

コードを読みやすくするために、コードサンプルの前に4つのスペースを追加することを忘れないでください。 –

+0

ありがとうございました。この汚れているが作業中の修正でかなり時間を節約できました。 –

関連する問題