各リンクの onclick-attribute を変更したり、onbeforeunload-event を使用したりする代わりに、ページの読み込み時にすべてのアンカー要素に clickevent-listener をアタッチするのが 1 つの方法だと思います。コールバックは、ブラウザのデフォルトの動作をインターセプトして、リンクをたどることができます。次に、クリックされたばかりの a 要素の属性を取得しsrc
、必要な設定を URL に追加してから、適切な URL に設定することにより、ユーザーを適切な場所 (設定を含む) に送信できwindow.location.href
ます。
MDN には、イベント リスナーに関するすばらしい記事があり、参考になると思います。古いバージョンの IE に関するセクションに特に注意してください。
それがどのように見えるかの非常に大雑把な例:
function callback(e){
// Get the src of the clicked a-element
var src = this.src;
// Add preferences to the url, this need
// improvement depending on your needs
src += "?somesetting=foo";
// Send user to the url with preferences
window.location.href = src;
}
// Get all anchors on page
var anchors = document.getElementsByTagName("a");
// Loop over the elements and attach listener
for(i=0 ; i < anchors.length ; i++){
// Extend with support for older IE if needed
anchors[i].addEventListener("click", callback, false});
}