
[1] 링크를 클릭하면 target=_blank
IE11은 예상 탭이 아닌 새로운 빈 탭을 엽니다. 이는 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의 버그처럼 보입니다.
내가 생각할 수 있는 버그에 대한 해결 방법은 다음과 같습니다.
- 더 나은 다른 브라우저를 사용하세요
- 인터넷의 모든 페이지를 수정하고 다음
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="");}