2013-06-15 3 views
0

로드 후 몇 초 동안 <title>을 표시하고 다른 <title>으로 바꿔주는 깔끔한 코드가 있습니다. Safari의 일부 버전이나 iPad에서는 작동하지 않으므로 Safari를 확인하고 브라우저가 Safari 인 경우 효과를 취소하십시오. 우리가 지금이 작동하지 않습니다 - 나는 문제가 safariFix 기능에 확신하지만, 무엇이 잘못되었는지 여전히 멍청한 놈과 확실하지 않다 :브라우저 제목에 replaceWith를 사용합니다.

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Uppagus</title> 
<link rel="stylesheet" type="text/css" href="uppagusSTYLE.css" /> 
<link rel= "shortcut icon" media="all" type="image/x-icon" href="http://www.uppagus.com/favicon.ico" /> 
<link rel= "icon" media="all" type="image/vnd.microsoft.icon" href="http://uppagus.com/favicon.ico" /> 
<meta http-equiv="Page-Exit" content="revealTrans(Duration=2.0,Transition=23)"> 
<script src="jquery.min.js"></script> 
<script> 
    var isSafari; 
    var ua = navigator.userAgent.toLowerCase(); 
    if(ua.indexOf('safari') != -1) { 
    if(ua.indexOf('chrome') > -1) { 
     var isSafari = false; 
    } else { 
     var isSafari = true; 
     safariFix(); 
    } 
    } else { 
    isSafari = false; 
    } 

    function safariFix() { 
    $(function() { 
     $('#googleFix').replaceWith('<script id="safariFix">function updateTitle() { document.getElementsByTagName("title")[0].innerHTML = "Uppagus";</script>'); 
    }); 
    } 
</script> 
<script id="googleFix"> 
function updateTitle() { 
    setTimeout(function() { 
     document.getElementsByTagName('title')[0].innerHTML = 'ppagus'; 
    }, 2000); 
} 
</script> 

... 
</head> 

답변

1

스크립트 블록이 브라우저로 아래로 정상을 실행 문서를 파싱하는 동안 그들을 만난다. 따라서 첫 번째 스크립트에서 코드 을 조작하여 해당 스크립트 다음에 코드를 사용할 수 없습니다. 뒤에 나타나는 스크립트 요소를 바꾸려고합니다.

하지만 왜 스크립트를 대체하려고합니까? 왜 그냥 스크립트의 논리를 넣지 :

var ua = navigator.userAgent.toLowerCase(); 
var isSafari = ua.indexOf('safari') != -1 && ua.indexOf('chrome') == -1; 

function updateTitle() { 
    if (isSafari) { 
     document.getElementsByTagName("title")[0].innerHTML = "Uppagus"; 
    } else { 
     setTimeout(function() { 
      document.getElementsByTagName('title')[0].innerHTML = 'ppagus'; 
     }, 2000); 
    } 
} 

(참고도/다른 구조가 필요 이상으로 복잡한 경우가 중첩 된 것이다.)