例如,我有:http://A.com/a/index.html,該頁面裡有很多不同網站的外鏈(如b.com、c.com、d.com等)。
現在我想,用php、JS或其他方法實現,點擊外連結“b.com”,新視窗開啟的地址是“http://a.com/b/index.php?b.com”的效果。
謝謝,因不太懂代碼,希望大大們賜教,如何統一替換所有的外鏈形式?
回複內容:
例如,我有:http://A.com/a/index.html,該頁面裡有很多不同網站的外鏈(如b.com、c.com、d.com等)。
現在我想,用php、JS或其他方法實現,點擊外連結“b.com”,新視窗開啟的地址是“http://a.com/b/index.php?b.com”的效果。
謝謝,因不太懂代碼,希望大大們賜教,如何統一替換所有的外鏈形式?
捕捉 click 事件,然後在事件處理函數裡修改 href。
$(document).on('click', 'a:not([data-bypass])', function(e) { var $target = $(e.target), href = $target.attr('href'), prefix = 'http://a.com/b/index.php?'; if (/^http:\/\//.test(href)) { $target.attr('href', prefix + href); } // 把檢查過的 標記一下,以後就不會再次做檢查 $target.attr('data-bypass', 'bypass');});
這種思路跟直接遍曆 修改 href 的思路比較,好處是絕無死角且效率高,對於後面再加入的 也依然有效。而且對於需要特殊處理的 ,只需要在標籤裡面先寫上 data-bypass 屬性就行,很方便。
jquery 擷取全部 A 標籤,然後批量替換 href 的值為 http:// 開頭的
$("a[href*='http://']").each(function() { $(this).attr('href','http://www.fsdeveloper.net'+'/'+$(this).attr('href'));});
類似這種寫法,