2012-08-24 2 views
0

내 상황은 다음과 같습니다. 다른 HTML 페이지의 양식에서 텍스트를 쓸 수있었습니다. 하지만 내가 원하는 것은 그 형식의 텍스트 만 사용하여 링크를 만드는 것입니다. 내가 처음에 말했듯이, 내 목표는,다른 페이지의 양식에서 텍스트를 사용하여 링크 만들기

<script> 

addEventListener 
(
'DOMContentLoaded', 
function() 
{ 

// get the var elements with an id and set their textContent to the corresponding widget.preferences 
    var vars = document.querySelectorAll('var[id]'); 
    for(var i=0,element=null; element=vars[i++];) 
    { 
     element.textContent = widget.preferences[ element.id ]; 
    } 


}, 
false 
); 

</script> 
</head> 
<body> 

<h1>Popup window</h1> 
<p>Here is a list of preferences and their associated value:</p> 
<ul> 
    <li><var id="foo"></var> 
    <li><var id="bar"></var> 
    <li><var id="baz"></var> 
    <li><var id="check"></var> 
    <li><var id="group1"></var> 
    <li><var id="myMultipleSelect"></var> 
</ul> 

</body> 

그러나 : 원래 나는 특히하고 "VAR"태그 (형태 변경 사항을 저장하는 방법의 일종) widget.preferences, 자바 스크립트를 사용 다른 페이지의 양식에있는 텍스트를 사용하여 링크를 만들 수 있습니다. 다음과 같이 형식은 다음과 같습니다

<fieldset> 
    <p> 
    <input id="text1" name="foo" type="text"></input> 
    <label for="text1">foo</label> 
    </p> 
    <p> 
    <input id="text2" name="bar" type="text"></input> 
    <label for="text2">bar</label> 
    </p> 
    <p> 
    <input id="text3" name="baz" type="text"></input> 
    <label for="text3">baz</label> 
    </p> 
</fieldset> 
+0

스택 오버플로에 오신 것을 환영합니다. 클라이언트 측 JS가 아닌 서버 측 코드로 요구 사항을 구현하려고합니다. 그게 당신을위한 선택입니까? – nnnnnn

+0

그것은 추한 것입니다,하지만 이론적으로 자바 스크립트를 통해 전체 HTML 페이지를 읽고 원하는 값을 파싱 할 수 있습니다. – BadFeelingAboutThis

답변

0

나는 당신의 질문은 정확히 모르겠습니다 만, 자바 스크립트와 다른 페이지에서 정보를 검색하는 대답은 아약스이다.

이 답변에 대한 중요한주의 사항이 있습니다. 이렇게하려면 페이지와 데이터를 가져 오려는 양식 페이지가 동일한 도메인에 있어야합니다. 최신 브라우저에는 XSS (교차 사이트 스크립팅)에 대한 보안 조치가 있으므로 다른 방법으로는 정보를 얻을 수 없습니다.

양식의 내용을 가져 오려면 양식이있는 페이지에 대한 ajax 요청을 작성한 다음 html 콘텐츠를 XML로 구문 분석하십시오. 그런 다음 DOM을 탐색하거나 jQuery와 같은 프레임 워크를 사용하여 링크에 필요한 정보를 추출 할 수 있습니다. 당신이 아약스를 처음 사용하는 경우 액세스하려는 웹 페이지가 다른 도메인에있는 경우

, http://www.w3schools.com/ajax/default.asp

에서 W3C 학교 자습서를 시도, 당신은 운이있을 수 있습니다. Microsoft XDR 개체와 같은 친숙한 교차 사이트 요청을하기위한 몇 가지 제안 된 솔루션이 있지만 표준이 없으므로 보드 전체에서 작동하도록하려면 (가능한 경우) 약간의 작업이 필요합니다. .

또한 XSS에 대한 제한은 js가 현재 실행중인 브라우저에서 이루어 지므로 서버 측 언어에 액세스 할 수 있으면 어떤 종류의 처리기에서 귀하의 페이지로 요청을 "셔틀"할 수 있습니다. 내가 초기 응용 프로그램은 매우 명확하지 않았다 경우

+0

아마 내가 잘못 이해했으나 OP가 사용자가 입력 한 값을 양식의 마크 업에서 가져온 정적 텍스트가 아닌 다른 페이지의 양식에 사용하려고한다고 가정했습니다. – nnnnnn

+0

당신이 정확할 수도 있습니다, 나는 정확하게 그 질문이 무엇인지 확신하지 못했습니다. 이 경우, 그는 3 가지 옵션을 가지고 있습니다 : 1) GET 요청으로 양식을 제출하고 두 번째 페이지의 쿼리 문자열을 분석하십시오. 2) 두 페이지가 같은 문서에 존재하면 해당 양식을 서버 측 처리기 페이지에 제출하여 해당 게시물을 보낸 사람에게 다시 보내고 해당 응답에서 페이지를 업데이트하십시오. 3) 제출 된 값을 사용하여 동적 페이지로 양식 제출에 응답하려면 서버 측 언어를 사용하십시오 – MaxPRafferty

0

은 실례합니다, 불행하게도 난 정말 아약스를 모르겠지만,이 방법으로는 window.open 자바 스크립트를 추가하려고 : 내가 추가 한 후

function BookLink() { 
// Get foo value 
var blink = escape(document.getElementById("foo").value) ; 

// Open in a new window link obtained from the form on the other page 
window.open("file://" + blink); 
} 

클릭했을 때 페이지에서로드해야하는 이미지 (양식에서 가져온 링크 포함)

<ul> 
    <li><var id="foo">C:/Users/Onyx/Desktop/clip1.png</var> 
    <li><var id="bar"></var> 
    <li><var id="baz"></var> 
    <li><var id="check"></var> 
    <li><var id="group1"></var> 
    <li><var id="myMultipleSelect"></var> 
    <li><img src="ab.png" onclick="BookLink()" height="75"> 
</ul> 

그러나 왜 작동하지 않는지 나는 이해할 수 없습니다. 사실 클릭하면 "file : // undefined"링크가있는 페이지가 열립니다. 내가 잘못했거나 전체적인 방법을 변경해야합니까?

관련 문제