2015-01-14 2 views
0

동적으로 iframe을 만든 다음 aspx 페이지를 호출합니다. iframe 페이지의 요소에 액세스하고 해당 요소를 텍스트 상자 또는 레이블 등) 값을 전체 페이지를 다시로드하지 않아도됩니다.동적으로 생성 된 iframe 내용/요소 (예 : textbox, label, javascript)

첫 번째 작업은 내 iframe에 호출되는 페이지 요소에 액세스하는 것입니다. 자바 스크립트로 처리하려고하지만 현재까지 진행하지 않았습니다.

나는 다음과 같은 다양한 솔루션을 시도 :

How to get the body's content of an iframe in Javascript?

답변

0

사실, 당신이 첨부했습니다 대답은 작동합니다. 그러나 상위 페이지와 iframe URL이 동일한 호스트 (도메인 이름)에서로드 된 경우에만 해당됩니다. 그렇지 않은 경우 브라우저에서이 작업이 차단되었다는 오류 메시지가 표시됩니다.

iframe 및 iframe을 통해 다른 사이트를 표시 한 다음 조작하려는 경우 간단하게 그렇게 할 수 없기 때문에이 꿈을 포기해야합니다. 나는 당신을위한 하나의 해결책을 생각할 수 있습니다. 합법성에 대해서는 확실하지 않습니다. 그리고 그것은 엉덩이에 고통입니다.

도메인에서 URL을 수신하는 서버 측 스크립트를 열어 내용을 가져온 다음에 에코 할 수 있습니다. 이렇게하면 원래 원하는 페이지 내용을 얻을 수 있지만 자신의 호스트에 있기 때문에 attached answer에 언급 된대로 조작 할 수 있습니다.

사용자가 페이지의 링크를 다시 클릭하면 사용자가 제어 할 수 없으므로 모든 페이지 링크를 서버 측 주소로 변경해야하기 때문에 제어가 쉽지 않습니다. 원본 링크를 첨부하여 가져 오십시오. 아마도 내가 생각하지 못했던 많은 문제가있을 것입니다. 이러한 기능의

PHP 예 :이 경우에 당신이 그 같은 쿼리 문자열로 원하는 URL로 iframe을 통해 스크립트를로드해야

function fetchURL() { 
    $urlToFetch = urldecode($_GET['url']); 
    $contents = file_get_contents($urlToFetch); 
    // maybe here manipulate links and other stuff throw str_replace or, 
    // if you want more control over it, you may want to load it in to some DOM parser class, 
    // manipulate it and extract the result back to a string variable. 
    echo $contents; 
} 

참고 :

$yourDesiredURL = 'http://www.example.com'; 
echo '<iframe src="http://www.yourdomain.com/your/script/path.php?url=' . urlencode($yourDesiredURL) . '"></iframe>'; 

* ************* EDIT ***************

실제로 이제 .NET에 태그를 추가 했으므로 예제 코드를 볼 수 있습니다. 아마도 당신에게 가장 좋은 것은 아니지만 매우 짧고 단순하기 때문에 그것을 변환하는 데 아무런 문제가 없을 것입니다. 다시 말하지만, 나는 그것을 시도한 적이 없다고 말하고 싶습니다. 아마 당신과 (혹은) 저의 머리에있을 것입니다. 아마도 그 아이디어를 포기하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. iframe과 페이지가 동일한 도메인에서 호스팅되고 있습니다. 왜 내가 올바른 작업을 수행 할 수 없는지 모르겠습니다. http://www.codeproject.com/Questions/ 865460/accessible-dynamically-created-iframe-contents-elem? arn = 0 –

관련 문제