2016-11-17 2 views
0

스타일 시트간에 전환 할 때 Chromium 53과 Firefox 49 사이에 이상한 비 일관적인 동작이 발생합니다.크롬과 파이어 폭스에서 대체 스타일 시트 전환

내 스타일 시트는 다음과 같이 추가됩니다

<link class="alternate-style" rel="stylesheet" title="Carbon" 
     type="text/css" href="assets/css/alt/Carbon.css" /> 
... 

스위처는 다음과 같이 작동

function setStyle(style) { 
    $('link.alternate-style') 
    .prop('disabled', 'disabled') 
    .filter(function() { return this.title == style; }) 
    .removeAttr('disabled'); 
} 

(의 setStyle()가 디폴트 값으로 시작 호출됩니다.)

이를 Firefox 및 Chromium에서 jQuery 2.2.4와 같은 문제없이 작업했습니다.

이제 jQuery 3.1.1로 업그레이드하려고합니다.

Chromium에는 전혀 문제가 없습니다.하지만 Firefox에서는 업그레이드 후에 작동하지 않습니다. 모든 스타일 시트는 사용할 수 없으며 스타일 체인저는 아무 것도하지 않습니다. ,

function setStyle(style) { 
    $('link.alternate-style').prop('disabled', function() { 
    return this.title != style; 
    }); 
} 

지금은 파이어 폭스에서 작동을 :

removeAttr()가 변경되었음을 결말이 여운 (jQuery를 지금보다 엄격 속성과 특성을 구별), 나는 청소기 어떤 경우 같았다 다음에있는 setStyle 변경 하지만 Chromium에서는 그렇지 않습니다. 버그는 다르다. 스타일 전환기는 잘 작동하지만 초기화 도구가 손상되고 페이지가 처음에 스타일이 지정되지 않는다.

요약 : 2.2.4에서 두 버전의 코드가 모두 작동합니다. 3.1.1에서 이전 코드는 Firefox에서는 작동하지 않지만 Firefox에서는 작동하지 않지만 새로운 코드는 Firefox에서는 작동하지만 Chromium에서는 작동하지 않습니다. 이 속성을 간단하게 다시 무시됩니다 -

function setStyle(style) { 
    $('link.alternate-style') 
    .prop('disabled', true)   // <-- necessary for chromium 
    .prop('disabled', function() { 
    return this.title != style; 
    }); 
} 

그 선이 중복 된 것 같다 테스트하여

, 나는 두 브라우저에서 작동 코드의 일부입니다. 그러나 Chromium의 초기화가 중단됩니다.

답변

0

업데이트 : 크롬 56의 최신 빌드 빌드로 테스트하면 크롬 버그가 수정 된 것으로 보입니다.

관련 문제