게리 홀의 답변을 기반으로 하지만 클릭 대신 페이지로드에서 URL을 변경합니다.
CSS를 사용하여 URL을 표시하고 싶었습니다.
a:after {
content: attr(href);
}
그래서 방문 할 실제 URL을 포함하도록 앵커의 href를 변환해야했습니다.
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에서 작동합니다.)