2010-12-05 4 views
4

나는 자신을 호스팅하는 웹 사이트를 가지고 있습니다. 정적 IP 주소가 없으므로 내 도메인의 모든 트래픽이 내 DDNS 계정에 마스킹으로 전달됩니다. 결과 페이지 ... 다음과 같습니다"상위"프레임의 URL을 어떻게 변경합니까?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <title>mydomianname.com</title> 
</head> 
<frameset rows="100%,*" border="0"> 
    <frame src="http://myddns.dyndns.org/mydomainname" frameborder="0" /> 
    <frame frameborder="0" noresize /> 
</frameset> 
</html> 

어떻게 사용자가 "아이"프레임 내에서 탐색 할 때 나는 "부모"프레임의 URL을 업데이트 할 수 있습니다?

업데이트 : 성공?

나는이 일을 자바 스크립트로 시도했지만 불리한 부작용 (두 개의 창을 열어두기, 내 주 창을 잘못된 위치로 이동 시키거나 만들면서 내 JavaScript 기능에 올바른 href을 가져 오는 데 문제가 발생했습니다. 그래서 뒤로 버튼이 제대로 작동하지 않았다). 내가 필요한 것은 내 a 태그의 속성을 자바 스크립트에서 사용할 수있는 값으로 유지하는 것이지만 아무 것도하지 않습니다. 속성이 value 인 것을 추가하면 a 태그의 기본 속성이 아닙니다.

a 태그 ...

<a onclick="url_update(this);" value="test/test.html" href="javascript:void(0);">test link</a> 

및 자바 스크립트 함수 ...

function url_update(element){ 
    base_url = 'http://mydomain.com/'; 
    window.parent.location.href = base_url + element.getAttribute('value'); 
} 

결과 업데이트 URL은 ...

http://mydomain.com/test/test.html 

... 및 앞에서 언급 한 부작용은 없습니다.

유일한 "부작용"은 브라우저 창 하단의 정보 표시 줄에 링크를 표시하는 것입니다. 지금은 내 href 속성으로 작성 되었기 때문에 javascript:void(0);라고 표시되어 있지만 링크가 넘어 졌을 때 업데이트 된 URL을 표시하고 싶습니다 ... 어떤 생각이 들었습니까?

이 자바 스크립트를 모두 스크랩하고 대신 IIS 7 URL 재 작성 2.0을 사용하면 더 좋을 것입니다. 그러나 URL 재 작성의 검은 색 예술을 아직 마스터하지 않았습니다. 자바 스크립트

답변

7

:

window.top.location = 'anther url' 

--update 업데이트 된 질문

사용 element.getAttribute('value') 대신에이 element.value

는 --update # 2 사용 href 속성 그러나, return false;를 추가 onclick 기능 :

<a onclick="url_update(this);return false;" value="test/test.html" href="test/test.html">test link</a> 
당신이 그렇게되면

, 당신은 aswell 값 속성을 건너 뛸 수 있으며 단지에 대한 그렇지 않으면 ... 대신 당신이 동일한 도메인에 있어야합니다 element.value

+1

답변이 제대로 작동하는 것 같지만 내 사이트의 모든 링크에 대해이 작업을 수행해야합니다. 만약 내가 test link과 같은 것을 가지고 있다면 어떻게 그 함수를 호출하는 모든 링크를 업데이트 할 단일 자바 스크립트 함수에'/ test/test.html'을 전달할 수 있습니까? – ubiquibacon

+1

굉장 해요. 태그에 고유하지 않은 속성을 추가 할 수 있다는 것을 몰랐습니다! 이제'rel' 및/또는'rev' 속성을 잘못 사용하는 대신 값을 사용할 수 있습니다. 또한 링크 위로 마우스를 가져 가면 브라우저 창 하단의 정보 표시 줄에 업데이트 된 URL이 제대로 표시 될 수 있음을 알고 있습니까? (업데이트 된 질문 참조). – ubiquibacon

2

최초의 element.href를 사용하도록 url_update 기능을 href를 속성을 사용하여 업데이트 보안상의 이유로 변경할 수 없습니다. 선언하고 부모에서 자녀 프레임

function change(theUrl){ 

window.parent.reloadContent(theUrl); 
} 

에서이 함수를 호출이 다음과 같은 기능 :

function reloadContent(theUrl){ 
    if (theUrl != ""){ 
     document.getElementById("frameID").src= theUrl ; 
    } 
} 
4

그것은 정확히 프레임이 무엇인지,하지만 스크럼 경우 수행되는 질문에서 말씀 어렵다 Meister의 솔루션은 각 태그에이 태그를 추가하여 원하는 것을 쉽게 구현할 수있는 것보다 효과적입니다.

target="_top" 

예가 수정되었습니다.

<a href="test/test.html" target="_top">test link</a> 

는 또한 모든 태그 = "_ 상단"당신이 페이지에서 다음 jQuery 코드를 구현할 수있는 대상이 있어야 페이지에서 ... jQuery로 을이 작업을 수행 할 수 있으며 동적으로 대상을 추가합니다 모든 링크. 당신이 href 속성을 가진 태그 normail이 있다고 가정한다

<script language="javascript" type="text/javascript"> 
$(function() 
{ 
    $("A").attr("target","_top"); 
}); 
</script> 

, 당신은 onclick을 모두 함께 제거 할 수, 다른 자바 스크립트는 대상 솔루션이 필요하지 않습니다.

+1

나는 당신에게 동의한다. 내 질문에서 무슨 일이 일어나는지 말하기는 어렵지만, 사람들이 매우 오랫동안 읽는 것을 좋아하지 않기 때문에 모든 질문에 답을 얻지 못한다. 당신이 말한 것처럼 목표 태그는 내 설정으로 올바르게 작동하지 못했지만 자바 스크립트 함수에 값을 전달하기 위해 다른 속성을 시도하는 아이디어를 얻었습니다. 나는'rel'을 사용하여 가치를 지니고 있습니다. 나는 그것이'rel' 속성이있는 것이 아니라 작동한다는 것을 압니다. 내 업데이트 된 질문보기 – ubiquibacon

+2

'Target = "_top"'이 가장 간단한 방법입니다! 감사! – MAW74656

관련 문제