私は Javascript よりも CSS コーディングに精通しているので、印刷時にリンク URL を表示するが画面には表示しない方法を見つけなければならないとき、ちょっとしたトラブルに遭遇しました。CSS を使用すると、必要なものをうまく管理できますが、Internet Explorer の奇抜さのおかげで、問題に対する JavaScript の解決策を見つける必要がありました。
このコードを使用してジレンマを解決し、リンク URL を印刷時に表示し、印刷プレビューを閉じるとページから消えるようにすることができました。
window.onbeforeprint = function(){
var links = document.getElementsByTagName("a");
for (var i=0; i< links.length; i++){
var theContent = links[i].getAttribute("href");
if (!theContent == ""){
links[i].newContent = " [" + theContent + "] ";
links[i].innerHTML = links[i].innerHTML + links[i].newContent;
}
}
}
window.onafterprint = function(){
var links = document.getElementsByTagName("a");
for (var i=0; i< links.length; i++){
var theContent = links[i].innerHTML;
if (!theContent == ""){
var theBracket = theContent.indexOf(links[i].newContent);
var newContent = theContent.substring(0, theBracket);
links[i].innerHTML = newContent;
}
}
}
しかし、今私の問題は、すべてのページ リンク URL が出力されることです。しかし、明らかに、内部ナビゲーション URL などを印刷する必要はありません。完成品が乱雑に見えるだけです。ページの特定のセクション ( Navigationの ID を持つ UL リストなど) を javascript の onbeforeprint/onafterprint 関数から除外する方法はありますか?