2012-10-19 4 views
0

그것은 나를 보여줍니다 window.location.search I 출력이 같은 결과 지금은해야 할 때와 같은 :location.search 나를 위해 작동하지 않습니다

X = 0.8690746387001127 또는 다른 수

하지만 실제로해야 그것은이 일을 왜 아무도 설명 할 수 tryjsref_loc_search

? 이름처럼 뭔가 = 수? ? 코드 모든

X = 0.8690746387001127

+0

무엇을 원하십니까? 지리적 위치? – Toping

+0

당신의 문제는 정확히 무엇입니까? –

+0

그의 문제는 URL에 검색어 문자열을 표시해야한다는 것입니다. – atmd

답변

0

당신은 HTML과 HTTP에 익숙하지 않으며 배우기 때문에 페이지의 소스 코드를 조사하지 않았다는 것을 알고 있습니다.

괜찮습니다.

여기에 해당 페이지의 소스 코드의 단순화 된 버전입니다 :

<form id="tryitform" name="tryitform" 
     action="tryit_view.asp" method="post" 
     target="view" 
     onsubmit="validateForm();"> 

    Source Code: <input type="button" value="Submit Code &raquo;" 
         onclick="submitTryit()"> 

    Result: <textarea id="pre_code"> 
     <!-- Your source code goes here --> 
    </textarea> 

    <input type="hidden" id="code" name="code" /> 
    <input type="hidden" id="bt" name="bt" /> 

    <iframe id="viewIFRAME" name="view" 
      src="tryit_view.asp?filename=tryjsref_loc_host"> 
    </iframe> 

</form> 


<script type="text/javascript"> 

// This Script is called when you press the "Submit Code" button 
function submitTryit() 
{ 
    // I'll omit the code, but what it does is this: 

    // 1. Take the text (your code) in the 'pre_code' textarea 
    // and substitute '=' with 'w3equalsign' 
    // and 'script' with 'w3scrw3ipttag'. 

    // 2. Put the modified text in the 'code' hidden input field 

    // 3. Change the form's action to "tryit_view.asp?x=" + a random number 

    // 4. Call validateForm(), which basically 
    // only checks if the code doesn't exceed 5000 characters 

    // 5. Submit form 
} 

window.onload = function(){ submitTryit() } 
// Call submitTryit() when the page first loads 
// so the view is filled also when you first arrive. 

</script> 

여기 이해하는 핵심 아이디어는 당신이 작성하는 코드가 action 속성이 "X tryit_view.asp로 설정되어 폼에가는 것입니다? = "+ 임의의 숫자이고 target 속성은"보기 "로 설정됩니다. 양식상의이 target 속성은 이 "보기"로 설정된 iframe에 양식 제출 결과가 나타나야 함을 의미합니다.

브라우저에서 볼 수있는 페이지에서 실제로 코드가 실행되고 있지 않은 것이 문제입니다. 실제로 서버에 POST로 전송됩니다.
그러면 서버는 iframe의 내용을 채우는 다른 페이지로 응답합니다.

iframe은 기본적으로 기본 페이지 내에 중첩되어 나타나는 "사각형의 미니 브라우저"이며 기본 페이지의 URL과 아무 관련이없고 주소 표시 줄에 나타나지 않는 다른 URL을가집니다. 대신이 URL은 양식 작업의 URL입니다.

이제 서버가 POST에 응답하여 수행하는 작업은 위의 이상한 텍스트 대체를 되 돌린 후 제출 한 코드로 HTML 페이지를 만드는 것입니다.
그래서 코드가 iframe 내부에서 실행됩니다.

window.location 또는 location으로 작성하면 코드가 실제로 기본 페이지의 위치가 아니라 iframe의 위치에 액세스하게됩니다.

이 같은 상위 페이지의 위치에 액세스 할 수 있습니다

// 'parent', same as 'window.parent', refers to 
// the frame which is the parent of the frame where 
// this code is being run (the iframe named 'view'). 
document.write(parent.location.search); 

또는 같은를 :

// "top" is the frame at the top of the frame hierarchy 
document.write(top.location.search); 

행운을 학습에!

+0

,,,,에서 여기 thankx 친구 ,,, 그것이 내가했기 때문에 나는 대부분, 약간 대답을 편집 한 –

+0

,,, 정말 사실 일이 장면 뒤에 일어나는 무엇 노력하고 있습니다 뿐만 아니라, 다시 문구와 더 나은 일부를 설명하기위한 POST에 대한 잘못된 URL을 작성 (I 희망). 하지만 그래, 이건 뒤에서 일어나는 일이야. 당신이 방화범이 설치되어있는, 또는 당신이 당신의 HTTP 트래픽을 볼 수 있습니다 다른 개발 도구 경우, POST가 만들어지고 볼 수있는 대답은 서버를 제공합니다. – Zecc

2

첫째, w3schools is not a good website to learn fromhttp://w3schools.com/jsref/tryit.asp?filename=tryjsref_loc_host

<!DOCTYPE html> 
<html> 
<body> 

<script> 

document.write(window.location.search) 

</script> 

</body> 
</html> 

출력 :

여기 내 예제 코드

// 페이지의 URL입니다. 대신 jqFundamentals을 권하고 싶습니다. ("javascript basics"섹션)

즉, window.location.search은 사용자에게 현재의 쿼리 문자열을 제공합니다. w3school의 "Try It"사이트의 경우 보통 cachebuster 기술로 사용되는 Math.rand() 인 것으로 보입니다.

"제출"버튼을 클릭했을 때 피들러 (또는 다른 네트워크 트래픽 모니터)가 실행중인 경우 전체 URL은 http://w3schools.com/jsref/tryit_view.asp?x=0.42147885356098413입니다.

MDN 자바 스크립트 문서의 훌륭한 소스입니다, window.location.search에 자신의 항목은 말한다 :

검색 | URL 뒤에 오는? 기호를 포함하여? 상징. | ? q = devmo

+0

thankx ,,,,, 난 X 다시 나에게 표시 한 실제에 = 0.42147885356098413? 당신은 많은 새로운 일에 저를 소개하는 이유 –

+0

예 다음, thankx 다시 엄지 손가락 경우 ,,,, –

+0

변환 할 수 있습니다 난 사실 일을 가지고에 대한 X = 003403242304, iframe을은 –

관련 문제