ASP.NET의 게시물을 통해 정보를 iframe에 전달하려면 어떻게해야합니까?
-
05-07-2019 - |
문제
게시물을 통해 정보를 iframe에 전달하고 싶습니다. (게시물을 실행하는 jQuery 또는 JavaScript 일 수 있습니다. 실제로 중요하지 않습니다).
iframe이 가져온 방식을 변경하는 데 액세스 할 수 없으므로 QueryString을 통해 정보를 보낼 수 없습니다.
이 데이터는 iframe의 컨텐츠 레이아웃을 결정하므로 게시물이 전송 된 후 iframe이 업데이트되도록 어떻게해야합니까? (아마도 새로 고침?)
해결책
나는 a 블로그 게시물 숨겨진 iframe을 사용하여 파일을 업로드하기 위해 jQuery와 함께이 작업을 수행합니다. 코드는 다음과 같습니다.
양식의 HTML은 다음과 같습니다.
<div id="uploadform">
<form id="theuploadform">
<input type="hidden" id="max" name="MAX_FILE_SIZE" value="5000000" >
<input id="userfile" name="userfile" size="50" type="file">
<input id="formsubmit" type="submit" value="Send File" >
</form>
jQuery가 iframe을 생성 할 수있게하는 div는 작은 CSS로 숨길 수 있습니다.
<div id="iframe" style="width:0px height:0px visibility:none">
</div>
콜백의 결과를 보여주는 div :
<div id="textarea">
</div>
jQuery 코드 :
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#formsubmit").click(function() {
var userFile = $('form#userfile').val();
var max = $('form#max').val();
var iframe = $( '<iframe name="postframe" id="postframe" class="hidden" src="about:none" />' );
$('div#iframe').append( iframe );
$('#theuploadform').attr( "action", "uploader.php" )
$('#theuploadform').attr( "method", "post" )
$('#theuploadform').attr( "userfile", userFile )
$('#theuploadform').attr( "MAX_FILE_SIZE", max )
$('#theuploadform').attr( "enctype", "multipart/form-data" )
$('#theuploadform').attr( "encoding", "multipart/form-data" )
$('#theuploadform').attr( "target", "postframe" )
$('#theuploadform').submit();
//need to get contents of the iframe
$("#postframe").load(
function(){
iframeContents = $("iframe")[0].contentDocument.body.innerHTML;
$("div#textarea").html(iframeContents);
}
);
return false;
});
});
</script>
이 uploader.php와 같은 PHP 앱을 사용하여 파일로 무언가를 수행했습니다.
<?php
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
$maxfilesize = $_POST[MAX_FILE_SIZE];
if ($maxfilesize > 5000000) {
//Halt!
echo "Upload error: File may be to large.<br/>";
exit();
}else{
// Let it go
}
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print('File is valid, and was successfully uploaded. ');
} else {
echo "Upload error: File may be to large.<br/>";
}
chmod($uploadfile, 0744);
?>
필요한 것보다 더 많은 것이 있지만 jQuery의 개념을 보여줍니다.
다른 팁
코드는 편리하지 않지만 우리 팀은 순수하게 JavaScript 로이 작업을 수행했습니다. 내가 기억 하듯이 다음과 같이 갔다.
function postToPage() {
var iframe = document.getElementById('myIFrame');
if (iframe) {
var newForm = '<html><head></head><body><form...> <input type="hidden" name="..." value="..." /> </form><script type=\"text/javascript\">document.forms[0].submit();</scrip' + 't></body></html>';
iframe.document.write(newForm); //maybe wrong, find the iframe's document and write to it
}
}
제휴하지 않습니다 StackOverflow