2014-06-11 2 views
-1

사진 용 디스플레이 엔진 (코드에 mpv.html이라고 함)을 작성했습니다. 두 가지 모드가 있습니다. 모드 1은 개별 이미지 (축소판 그림과 링크 됨)를 보여주고 모드 2는 양식 제출에 의해 트리거 된 슬라이드 쇼와 같은 이미지 이름 배열을 통해 넘깁니다.HTML 환경 내에서 인수 전달

모든 인수가 URL에 전달됩니다. 모드 1에서 mpv를 호출하는 링크는 이미지 파일 이름과 원하는 추가 데이터를 전달하지만 모드 2에서는 대부분의 데이터가 표시되지 않고 이미지 파일 이름 만 전달됩니다 (HTML 양식 메커니즘을 통해 문자열로 전달됨).

(mpv.html이 이미지를 제공하는 HTML 페이지와 동일한 폴더에있는 경우) 두 모드 모두 정상적으로 작동합니다. 그러나 서버에서 모드 1은 완벽하게 작동하지만 디스플레이 엔진이 동일한 서버의 자체 위치에있는 모드 2는 "[display engine]? inp1 ="만 볼 수 있습니다. 여기서 inp1의 값은 다음과 같은 문자열이어야합니다. 이미지 파일 이름. 단순한 문자를 전달하는 테스트도 표시되지 않으므로 제출하기 전에 양식에 주입되는 strTest의 값이 서버 환경에서 표시 엔진에 표시되지 않는다고 생각합니다.

이것은 CORS 문제입니까? 어쨌든, 누구든지 파일 이름 배열을 전달하는 더 성공적인 방법을 보게됩니까?

. 
. 
. 
<td><a href="../../mpv/mpv.html?pic=../WebTopics/dk1968_211.jpg&color=#4D4d4d&backcolor=..." target="_blank"><img src="images/dk1968_211_t.jpg"></a></td> 
. 
. 
. 
<form action="../../mpv/mpv.html" method="get" target="_blank"> 
<input type="hidden" id="input1" name="inp1"> 
<input type="submit" value="Play as slide show..."> 
</form> 
. 
. 
. 
<script> 
... 
    arImages.push("../WebTopics/DavidsKids/images/dk1968_216.jpg"); 
... 
var strTest = JSON.stringify(arImages); 
$("#input1").val(strTest); 
... 
</script> 
+0

URL에서 '#'문자를 URL 인코딩해야합니다. '% 23'이어야합니다. – Barmar

답변

0

당신은 href URL에 # 문자을 URL 인코딩해야합니다. 그렇지 않으면 구분 기호로 취급되며 그 이후의 모든 것은 URL의 해시입니다.

<a href="../../mpv/mpv.html?pic=../WebTopics/dk1968_211.jpg&color=%234D4d4d&backcolor=..." target="_blank"> 
+0

아마도 내 질문을 잘못 읽었을 것입니다. 참조하는 링크는 두 모드 모두에서 올바르게 작동합니다. jQuery를 통해 전송되는 데이터는 URL에 연결되지 않지만 서버에서만 나타납니다. 그리고, 값을 읽으려면 % 23을 #로 변경해야한다는 것을 배웠습니다. –

+0

양식에서 전달 된 값을 어떻게 읽으십니까? – Barmar

0

내 잘못입니다. 전혀 문제가 없습니다. 내 개발 환경에 jQuery 사본이 포함되어 있으며 서버 환경은 그렇지 않습니다.

모두 수정되었습니다.