링크가 작동하지 않음

링크가 작동하지 않음

[1] 링크를 클릭하면 target=_blankIE11은 예상 탭이 아닌 새로운 빈 탭을 엽니다. 이는 Chrome[2]에서는 잘 작동하지만 IE8에서는 실패하고 이제 IE 11에서는 실패합니다.

이 문제를 해결하기 위해 브라우저 설정(인터넷 설정/고급 탭)을 재설정하고 IE 11로 업그레이드했습니다.

탭 설정을 변경하면 이에 영향을 미치는 것으로 보이지만 예상되는 동작을 수행하는 옵션은 없습니다.

[1] 예제 코드:

<A class=oLinkExternal href="http://orgintranet.org.co.uk/systems/ibd-db/" target=_blank>IBD database</A>

[2] 버전 42.0.2311.135

답변1

target="_blank"작동하지만 작동하지 않기 때문에 target=_blank이것은 밑줄로 시작하는 속성을 올바르게 구문 분석하지 않는 IE11의 버그처럼 보입니다.

내가 생각할 수 있는 버그에 대한 해결 방법은 다음과 같습니다.

  1. 더 나은 다른 브라우저를 사용하세요
  2. 인터넷의 모든 페이지를 수정하고 다음 target=_blank으로 대체합니다.target="_blank"

첫 번째 옵션의 경우 내 도움이 필요하지 않습니다.

두 번째 옵션은 들리는 것만큼 불가능하지는 않습니다. 아래에 접근 방식을 간략하게 설명하겠지만 저는 IE11을 사용하지 않으며 이 방법을 시도해 본 적이 없다는 점을 고려해야 합니다.

로드된 HTML 페이지를 수정하는 소프트웨어는그리스몽키. IE11에는 (알 수 없는 품질의) 일부 적용이 존재합니다.

그 중 하나가 작동한다고 가정하면 다음은 해당 작업을 수행할 수 있는 사용자 스크립트입니다.

// ==UserScript==
// @name        your-choice
// @namespace       http://avoid.collusions.com
// @description     Resets target="_blank" links hoping to add quotes.
// @include     *
// ==/UserScript==
(function () {
    var external = document.links; 
    for (var k=0; k<external.length; k++)   
        if (external[k].href && external[k].target=="_blank") 
            external[k].target = "_blank";
})();

이는 아마도 Greasemonkey가 대체하는 속성 주위에 따옴표를 추가할 것이라고 잘못 가정한 것입니다. 그렇지 않은 경우 스크립트를 수정하여 따옴표를 강제로 적용할 수 있습니다.

나는 아무것도 테스트하지 않았으므로 이 접근 방식이 작동하지 않으면 미리 사과드립니다.

답변2

jQuery를 사용하여 target='_blank' 속성을 제거할 수 있습니다.

같은 것

$document.ready(function(){
 $("a").attr('target','_blank');
});

아니면 그냥 js

var as = [].slice.apply(document.getElementsByClassName('oLinkExternal'));
for (var a in as){as[a].target="");}

관련 정보