2010-04-29 2 views
9

끝에 앵커가있는 다른 페이지 (예 : index.html # anchor)에 대한 링크가 가득한 페이지가 있습니다. 그들이 가리키는 페이지에서 뭔가 표시하기 위해 앵커가 가리키는 위치를 읽어야하는 스크립트가 있습니다.IE에서 URL 앵커 읽기

Firefox에서 완벽하게 작동하지만 IE가 URL 끝에서 #anchor를 제거하는 것으로 보입니다. 따라서 스크립트는 텍스트를 가져올 수 없습니다. 어떤 서버 측 코드도없이이 문제를 해결할 수있는 방법이 있습니까?

답변

5

URL을 어떻게 가져 오나요?

window.location.hashcontain the contents of the hash이어야합니다.

+0

하지만이 장전되면 IE는 URL에서 해시를 제거하는 것 같다 내가 Util.js 내부를 배치 , 그것은 유용합니다. 이유가 확실하지 않거나 해결책이있는 경우에도 마찬가지입니다. 어쨌든 고마워! – tominated

0

window.location은 여전히 ​​IE에 앵커를 포함합니까? 아니면 거기에서 제거 되었습니까?

var whole = "" + window.location; // location is object, make sure it's a String 
var parts = whole.split('#'); 
var anchor = parts[1]; 
+0

IE가 창문에 보이지 않는 것 같습니다. 위치. 그래도 당신의 아이디어를 가져 주셔서 감사합니다! – tominated

+0

window.location.href? – wombleton

+0

나는 두려워하지 않습니다. window.location과 같은 결과를줍니다. – tominated

0

그냥이

var url = window.location.search.substring(1) 
    var arr=url.split("#") 
    str=arr[1] 
2
내가 IE 6, 7에 다음 코드를 테스트 한

, 8 등을 시도 : 그것은 아직 거기 경우에 당신은 해시 window.location 및 분할을 사용할 수 있습니다 올바른 해시가 모든 경우에 경고 상자에 표시됩니다.

<script type="text/javascript"> 

    function showHash() { 
     var currentUrl = "" + document.location; 
     var hash = ""; 
     var parts = currentUrl.split("#"); 
     if (parts.length > 1) { 
      hash = parts[1]; 
     } 
     alert("the current hash is: " + hash); 
    } 

</script> 

<input type="button" value="Show Hash" onclick="javascript: showHash();" /> 

해당 코드가 효과가 있습니까?

0

다음은 도움이되는 기능입니다. 앵커가 없으면 null을 반환합니다. 나는 스크립트에서지고있어 방법 즉, D

function getAnchor() { 
    var currentUrl = document.URL, 
     urlParts = currentUrl.split('#'); 

    return (urlParts.length > 1) ? urlParts[1] : null; 
} 
관련 문제