js通過contentWindow控制iframe子頁面元素點選事件,並把值傳給父頁面
本來需要點選一個圖片後,顯示一個iframe上傳框.點選上傳,從而操作子頁面中的點選上傳動作,再把值傳給父頁面.或控制父頁面中iframe元素的顯示狀態.不過.通過upload()函式,可以不用顯示上傳框了,直接啟用子頁面中的上傳動作.另外,onchange事件則可以自動提交上傳,不必使用者點選上傳按鈕了.三步並做一步
<!-- 父頁面中的上傳按鈕 -->
<img src="ui/images/myimg.png" class="link" onclick="upload()" />
<iframe src="upload.php"id="box_paint_container" ></iframe>
upload.php 檔案中有一個表單
<form enctype="multipart/form-data" action="upload.php"id="forms" method="post" name="upform" style="position: relative; ">
<input name="upfile" type="file"id="file" onchange="document.getElementById('forms').submit();
window.parent.document.getElementById('box_paint_container').style.display='none';;">
</form>
下面是父頁面中的一個函式
<script type="text/javascript">
function upload(){
var a = document.getElementById('box_paint_container').contentWindow.document.getElementById("file");
a.click();
}
</script>
upload.php中還有一個php上傳功能,相容手機版,可上傳單張圖片. 一併分享下
//上傳檔案型別列表
require_once 'config.php';
require_once '../system/config/database.inc.php';
//require_once '../system/funcs/global.fun.php';
require_once 'incl/main.inc';
dbconnect(); $settings=get_settings(0); $options=get_options(); $lang=get_language();
if(isset($_COOKIE['uid'])){
$uid=intval(_encrypt(_getcookie("uid"),'DECODE'));
$shopid=$_COOKIE['shopid'];
$query='SELECT * FROM '.$dbss['prfx']."_member WHERE uid=$uid";
$result=neutral_query($query);
if(neutral_num_rows($result)>0){
$ext_user=neutral_fetch_array($result);
$user=array();
$uname=$ext_user['username'];
$heading=$ext_user['headimg']==''?'/statics/uploads/'.$ext_user['img']:$ext_user['headimg'];
if($uname==''){
$uname=substr_replace($ext_user['mobile'],"****",5,2);
}
}
}
if(!isset($uid)){
//許可權
redirect('/index.php/mobile/user/login.php');die();
}
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/x-png'
);
$max_file_size=2000000; //上傳檔案大小限制, 單位BYTE
$destination_folder="uploadimg/"; //上傳檔案路徑
$watermark=0; //是否附加水印(1為加水印,其他為不加水印);
$watertype=1; //水印型別(1為文字,2為圖片)
$waterposition=1; //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);
$waterstring="http://www.xplore.cn/"; //水印字串
$waterimg="xplore.gif"; //水印圖片
$imgpreview=0; //是否生成預覽圖(1為生成,其他為不生成);
$imgpreviewsize=1/2; //縮圖比例
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!is_uploaded_file($_FILES["upfile"]['tmp_name']))
//是否存在檔案
{
echo "圖片不存在!";
exit;
}
$file = $_FILES["upfile"];
if($max_file_size < $file["size"])
//檢查檔案大小
{
echo "檔案太大!";
exit;
}
if(!in_array($file["type"], $uptypes))
//檢查檔案型別
{
echo "檔案型別不符!".$file["type"];
exit;
}
if(!file_exists($destination_folder))
{
mkdir($destination_folder); //上傳到的位置
}
$filename=$file["tmp_name"];
$image_size = getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo['extension'];
$destination = $destination_folder.time().".".$ftype;
if (file_exists($destination) && $overwrite != true)
{
echo "同名檔案已經存在了";
exit;
}
if(!move_uploaded_file ($filename, $destination))
{
echo "移動檔案出錯";
exit;
}
$pinfo=pathinfo($destination); //檔名
$fname=$pinfo['basename'];
$line='<img onclick="imgbig(this)"src="'.$destination_folder.$fname.'" style="width:100px;" />';
$query='INSERT INTO '.$dbss['prfx']."_lines VALUES(NULL,$uid,'$uname',$timestamp,'$line','$shopid','$heading','',0)";
neutral_query($query);
//print_r($line);exit;
//echo " <font color=red>上傳中....</font><br>";
// echo " 寬度:".$image_size[0];
// echo " 長度:".$image_size[1];
// echo "<br> 大小:".$file["size"]." bytes";
}
相關文章
- js-關於iframe:從子頁面給父頁面的控制元件賦值方法JS控制元件賦值
- 023.Vue3入門,父頁面給子頁面傳遞資料Vue
- 024.Vue3入門,父頁面給子頁面傳遞多種資料Vue
- router-view子頁面呼叫父頁面方法更新父頁面引數View
- 026.Vue3入門,父頁面給子頁面傳遞資料,在子頁面不能修改,只能改自己的data內容Vue
- 禁用iframe子頁面滑鼠右鍵
- js禁用頁面所有輸入框以及點選事件JS事件
- JQuery iframe頁面jQuery
- 怎樣使用iframe重新整理父級頁面?
- Iframe內部頁面高度賦值於其父頁面的Iframe標籤賦值
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- JavaScript子頁面和父頁面相互訪問JavaScript
- iframe可以使用父頁面中的資源嗎(如:css、js等)?CSSJS
- iframe父子頁面通訊解決方案
- 基於Html對父頁面開啟子頁面Dialog()的使用HTML
- 遮蔽iframe子頁面F12按鍵
- iOS 封裝頁數控制,點選NavigationTabBar切換頁面iOS封裝NavigationtabBar
- 原生js頁面事件詳解JS事件
- JavaScript系列:動態建立iframe並載入頁面JavaScript
- 多頁面-HASH-頁面間傳值 Sloth-state
- 元件中 子給父傳值元件
- 如何在CSS中對映的滑鼠位置,並實現通過滑鼠移動控制頁面元素效果CSS
- keycloak~從login-status-iframe頁面總結如何跨域傳值~續跨域
- JavaWeb開發之頁面傳值JavaWeb
- 後臺向vue頁面傳值Vue
- Flutter頁面曝光事件埋點框架Flutter事件框架
- 點選頁面愛心效果
- 解決vue.js打包過後點選詳情頁面在伺服器中重新整理頁面空白Vue.js伺服器
- 為 FragmentTabhost 新增 tab 點選事件,在頁面跳轉之前Fragment事件
- jQuery點選頁面其他地方隱藏指定元素詳解jQuery
- Flutter11 路由、頁面傳值、NavigatorFlutter路由
- jsp頁面通過url向後臺傳值時的中文亂碼問題JS
- Laya頁面過後fgui介面不能點選問題GUI
- 防止頁面按鈕多次點選
- javascript頁面元素座標JavaScript
- 【VUE入門】父元件給子元件傳值Vue元件
- VUE 父元件動態傳值給子元件Vue元件
- JS 頁面載入過程問題JS
- [MUI] mui框架實現頁面間傳值UI框架