จากคำตอบของ Gary Holeแต่เปลี่ยน URL ในการโหลดหน้าแทนที่จะคลิก
ฉันต้องการแสดง url โดยใช้ css:
a:after {
content: attr(href);
}
ดังนั้นฉันจึงต้องการให้ href ของจุดยึดถูกแปลงให้มี url จริงที่จะเข้าชม
function fixPortUrls(){
var nodeArray = document.querySelectorAll('a[href]');
for (var i = 0; i < nodeArray.length; i++) {
var a = nodeArray[i];
// a -> e.g.: <a href=":8080/test">Test</a>
var port = a.getAttribute('href').match(/^:(\d+)(.*)/);
//port -> ['8080','/test/blah']
if (port) {
a.href = port[2]; //a -> <a href="https://stackoverflow.com/test">Test</a>
a.port = port[1]; //a -> <a href="http://localhost:8080/test">Test</a>
}
}
}
เรียกใช้ฟังก์ชันข้างต้นในการโหลดหน้า
หรือในบรรทัดเดียว:
function fixPortUrls(){var na=document.querySelectorAll('a[href]');for(var i=0;i<na.length;i++){var a=na[i];var u=a.getAttribute('href').match(/^:(\d+)(.*)/);u&&a.href=u[2]&&a.port=u[1];}}
(ฉันใช้for
แทนforEach
มันจึงใช้งานได้ใน IE7)