Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
著過年放假在家復(fù)習(xí)了之前學(xué)的JS知識(shí),用原生擼了一個(gè)購(gòu)物車模塊,下面我來整理一下我的思路分享給大家。
1.1 廢話不多說,首先上個(gè)效果圖,如下:
購(gòu)物車功能效果圖
1.2 功能介紹:
功能介紹完畢,下面開始介紹我寫這個(gè)購(gòu)物車的步驟。
2.1 HTML代碼
<table>
<caption>
購(gòu)物車
</caption>
<thead>
<tr>
<!-- 全選復(fù)選框 -->
<th>
<input type="checkbox" name="checkAll" id="check-all" checked /><label for="check-all">全選</label>
</th>
<th>圖片</th>
<th>品名</th>
<th>單位</th>
<th>單價(jià)/元</th>
<th>數(shù)量</th>
<th>金額/元</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="checkbox" name="item" value="SN-1020" checked />
</td>
<td>
<a href=""><img src="images/p1.jpg" alt="" /></a>
</td>
<td>iPhone 11</td>
<td>臺(tái)</td>
<td class="price">4799</td>
<td><input type="number" min="1" value="1" /></td>
<td class="amount">xxxx</td>
</tr>
<tr>
<td>
<input type="checkbox" name="item" value="SN-1020" checked />
</td>
<td>
<a href=""><img src="images/p2.jpg" alt="" /></a>
</td>
<td>小米pro 11</td>
<td>部</td>
<td class="price">3999</td>
<td><input type="number" min="1" value="2" /></td>
<td class="amount">xxxx</td>
</tr>
<tr>
<td>
<input type="checkbox" name="item" value="SN-1030" checked />
</td>
<td>
<a href=""><img src="images/p3.jpg" alt="" /></a>
</td>
<td>MacBook Pro</td>
<td>臺(tái)</td>
<td class="price">18999</td>
<td><input type="number" min="1" value="1" /></td>
<td class="amount">xxxx</td>
</tr>
<tr>
<td>
<input type="checkbox" name="item" value="SN-1040" checked />
</td>
<td>
<a href=""><img src="images/p4.jpg" alt="" /></a>
</td>
<td>小米75電視</td>
<td>臺(tái)</td>
<td class="price">5999</td>
<td><input type="number" min="1" value="2" /></td>
<td class="amount">xxxx</td>
</tr>
<tr>
<td>
<input type="checkbox" name="item" value="SN-1050" checked />
</td>
<td>
<a href=""><img src="images/p5.jpg" alt="" /></a>
</td>
<td>Canon 90D單反</td>
<td>臺(tái)</td>
<td class="price">9699</td>
<td><input type="number" min="1" value="1" /></td>
<td class="amount">xxxx</td>
</tr>
</tbody>
<tfoot>
<tr style="font-weight: bolder; font-size: 1.2em">
<td colspan="5">總計(jì):</td>
<td id="sum">xxxx</td>
<td id="total-amount">xxxx</td>
</tr>
</tfoot>
</table>
2.2 CSS代碼
table {
border-collapse: collapse;
width: 90%;
text-align: center;
margin: auto;
}
table caption {
margin-bottom: 15px;
font-size: 1.5rem;
}
table th, table td {
border-bottom: 1px solid #ccc;
padding: 5px;
font-weight: normal;
}
table thead tr:first-of-type {
background-color: #e6e6e6;
height: 3em;
}
table input[type="checkbox"] {
width: 1.5em;
height: 1.5em;
}
table tbody tr {
border-bottom: 1px solid #ccc;
}
table tbody tr:hover {
background-color: #f6f6f6;
cursor: pointer;
}
tbody img {
width: 3em;
}
tbody input[type="number"] {
width: 3em;
}
button {
width: 150px;
height: 30px;
outline: none;
border: none;
background-color: teal;
color: white;
letter-spacing: 5px;
}
button:hover {
opacity: 0.7;
cursor: pointer;
}
2.3 效果圖
購(gòu)物車效果圖
以上就是一個(gè)簡(jiǎn)單的購(gòu)物車頁面的HTML和CSS樣式代碼。
三、完成相關(guān)JS代碼
首先,我們先完成商品的全選與取消全選的功能,所以肯定是需要拿到全選復(fù)選框元素和商品前面的復(fù)選框元素,代碼如下:
// 獲取全選復(fù)選框,所有的商品都有一個(gè)獨(dú)立的復(fù)選框
const checkAll=document.querySelector('#check-all');
const checkItems=document.getElementsByName('item');
拿到全選和每個(gè)商品的復(fù)選框元素之后,給全選框添加一個(gè)change事件,監(jiān)聽它的checked值的變化。此時(shí)全選框的checked值可以通過事件監(jiān)聽回調(diào)函數(shù)中的ev參數(shù)下的ev.target.checked拿到。
checkALl.onchange=ev=> {
// 如果全選框處于選中狀態(tài),ev.target.checked的值就為true,反之,為false。
console.log(ev.target.checked);
};
如果想讓全選框的的狀態(tài)和每個(gè)商品前的復(fù)選框狀態(tài)保持一致,那么就使他們的checked值一致即可。因此,我們可以在全選復(fù)選框的change事件中遍歷每個(gè)商品的復(fù)選框元素。
checkALl.onchange=ev=> {
// 如果全選框處于選中狀態(tài),ev.target.checked的值就為true,反之,為false。
console.log(ev.target.checked);
checkItems.forEach(item=> item.checked=ev.target.checked);
};
這樣點(diǎn)擊全選框的時(shí)候,就可以實(shí)現(xiàn)全部選中,和取消全選的功能了。效果如圖:
全選與取消全選
全選和取消全選的功能完成之后,下面開始完善逐個(gè)勾選商品,直至勾選全部商品,讓全選按鈕自動(dòng)變成被選中的狀態(tài)。
要完成這個(gè)功能,我們可以通過對(duì)每個(gè)商品的復(fù)選框添加一個(gè)change事件來監(jiān)聽checked的變化。因此需要通過forEach()方法對(duì)遍歷每一個(gè)商品。
checkItems.forEach(item=> item.onchange=ev=> {
// 在這里處理每一項(xiàng)的checked值
});
此時(shí),我們可以這樣考慮:當(dāng)每個(gè)商品的復(fù)選框都被勾選,即:所有商品復(fù)選框的checked的值全部為true時(shí),全選復(fù)選框才會(huì)顯示被勾選的狀態(tài),也就是全選復(fù)選框的checked的值也要為true。
由于checkAll的狀態(tài)依賴于每一項(xiàng)商品的checked值,那么可以利用一個(gè)數(shù)組函數(shù):Array.every()遍歷每一項(xiàng)商品,當(dāng)所有商品的checked值都為true時(shí),every()方法的返回值就是一個(gè)true,然后再賦值給checkAll即可。注意:由于我們拿到的checkItems是一個(gè)NodeList數(shù)組,需要先將其轉(zhuǎn)換成數(shù)組后再進(jìn)行操作。
checkItems.forEach(item=> item.onchange=ev=> {
checkAll.checked=Array.from(checkItems).every(checkItem=> checkItem.checked);
});
點(diǎn)擊選中每個(gè)商品
至此,全選和單選功能全部完成了。下面開始寫自動(dòng)計(jì)算金額的和總數(shù)的功能。
購(gòu)物車的數(shù)量和金額不僅包含每一項(xiàng)商品的數(shù)量和每一項(xiàng)商品的總金額,還包含了計(jì)算選中的商品總數(shù),以及所有選中的商品的總金額。
下面首先完成單個(gè)商品的總金額計(jì)算,總金額=單價(jià) * 數(shù)量,根據(jù)這個(gè)公式,我們首先拿到商品的單價(jià)和數(shù)量元素。
// 獲取單價(jià)組成的數(shù)組
const priceLists=document.querySelectorAll('.price');
// 獲取數(shù)量組成的數(shù)組
const numberLists=document.querySelectorAll('body input[type=number]');
以上單價(jià)(priceLists)和數(shù)量(numberLists)都是NodeList類型的,需要先將它們轉(zhuǎn)換成數(shù)組,由于表單中獲取的內(nèi)容都是string類型,而參與計(jì)算的需要的是整型,所以這里需要進(jìn)行一下轉(zhuǎn)換,使用parseInt()方法即可。
// 獲取商品單價(jià)組成的數(shù)組
const priceLists=document.querySelectorAll('.price');
const priceArr=Array.from(priceLists).map(item=> parseInt(item.textContent)); // [ 4799, 3999, 18999, 5999, 9699 ]
// 獲取商品數(shù)量組成的數(shù)組
const numberLists=document.querySelectorAll('body input[type=number]');
const numbersArr=Array.from(numberLists).map(item=> parseInt(item.value)); // 默認(rèn)值:[ 1, 1, 1, 1, 1 ]
注意:商品價(jià)格和商品數(shù)量在取值時(shí)有些不同。商品的單價(jià)是普通元素直接使用textContent即可拿到它內(nèi)部的值,而數(shù)量這個(gè)用的是表單控件,所以需要使用value才可以拿到值。 我剛開始寫這個(gè)功能的時(shí)候懵逼了半天,此處一定要注意。
拿到商品的單價(jià)和數(shù)量之后就可以按照上面的公式進(jìn)行計(jì)算了,由于商品的價(jià)格和商品的數(shù)量都是一個(gè)數(shù)組,并且價(jià)格和數(shù)量在數(shù)組中都是一一對(duì)應(yīng)的關(guān)系,因此可以使用JS數(shù)組的reduce()方法進(jìn)行遍歷。
let amountArr=[priceArr, numbersArr].reduce((prev, curr)=> {
return prev.map((item, index)=> {
return item * curr[index];
});
});
總感覺上述寫法有點(diǎn)怪怪的,是不是可以進(jìn)行簡(jiǎn)化呢?根據(jù)箭頭函數(shù)的特征,當(dāng)只有一條返回語句的時(shí)候可以省略掉return關(guān)鍵字和大括號(hào),因此上述方法可以簡(jiǎn)寫成下面這樣:
let amountArr=[priceArr, numbersArr].reduce((prev, curr)=> prev.map((item, index)=> item * curr[index]));
console.log(amountArr); // [ 4799, 3999, 18999, 5999, 9699 ]
(PS:上面的方法我一開始也沒有發(fā)現(xiàn)可以簡(jiǎn)寫,我是把代碼發(fā)給我朋友看了之后,朋友給我點(diǎn)醒了。還是才疏學(xué)淺呀。)
這時(shí)已經(jīng)計(jì)算出來了每個(gè)商品的總金額,那么我們將其渲染到頁面中。
// 獲取單個(gè)商品總金額的元素?cái)?shù)組
const amountDOM=document.querySelectorAll('.amount');
amountDOM.forEach((item, index)=> item.textContent=amountArr[index]);
計(jì)算每個(gè)商品的金額并渲染到頁面中
單個(gè)商品的總金額渲染到頁面之后,下面就開始計(jì)算商品的總數(shù),和總金額了。根據(jù)某東、某寶的購(gòu)物車功能,我們可以發(fā)現(xiàn),總計(jì)那里統(tǒng)計(jì)的商品總數(shù)是一般是我們勾選上的商品總數(shù),總金額也是一樣的,那么我們就需要根據(jù)商品的狀態(tài)來進(jìn)行計(jì)算了。
首先聲明一個(gè)數(shù)組,用于存儲(chǔ)被選中的商品的狀態(tài),如果被選中,值為1,未被選中,則為0。
let isChecked=[];
checkItems.forEach(item=> isChecked.push(item.checked===true ? 1 : 0));
// 打印出商品狀態(tài)值
console.log(isChecked);
打印商品狀態(tài)值
商品的狀態(tài)已經(jīng)記錄好了,那么現(xiàn)在就需要統(tǒng)計(jì)選中的商品對(duì)應(yīng)的數(shù)量了。
// 聲明一個(gè)用于存儲(chǔ)商品數(shù)量的數(shù)組,該數(shù)組的作用是用于與對(duì)應(yīng)的商品的狀態(tài)值的數(shù)組進(jìn)行相乘,得到實(shí)際的被選中的商品的數(shù)組。
let checkedNumbers=[];
numbersArr.forEach((item, index)=> checkedNumbers.push(item * isChecked[index]));
// 打印被選中的商品的數(shù)量
console.log(checkedNumbers);
打印出選中的商品的數(shù)量數(shù)組
計(jì)算出被選中的商品數(shù)量的總數(shù)并渲染到頁面中:
let checkedSum=checkedNumbers.reduce((prev, curr)=> prev + curr);
// 將獲取的數(shù)量結(jié)果渲染到頁面中
document.querySelector('#sum').textContent=checkedSum;
效果如上圖已經(jīng)出來了。
下面開始計(jì)算被選中的商品的總金額,該總金額等于上面所有被選中的商品的總金額之和。計(jì)算出結(jié)果之后渲染到頁面中。
// 聲明一個(gè)數(shù)組用于存儲(chǔ)每一個(gè)被選中的商品的總金額
let checkedPrice=[];
checkedNumbers.forEach((item, index)=> checkedPrice.push(item * priceArr[index]));
// 打印被選中的每個(gè)被選中的商品總金額
console.log(checkedPrice);
// 計(jì)算被選中的商品總金額
let totalAmount=checkedPrice.reduce((prev, curr)=> prev + curr);
// 將選中的商品總金額渲染到頁面中
document.querySelector('#total-amount').textContent=totalAmount;
將總金額渲染到頁面
至此,關(guān)于計(jì)算單個(gè)商品的總金額以及被選中商品的數(shù)量和總金額的功能已經(jīng)全部完成了,但是我們還需要實(shí)現(xiàn)在頁面加載以及更改某個(gè)商品數(shù)量時(shí)自動(dòng)計(jì)算的功能。那么就需要將上述的計(jì)算功能封裝成一個(gè)函數(shù),以便后面每一次執(zhí)行計(jì)算時(shí)使用。
function autoCalculate() {
// 獲取單價(jià)組成的數(shù)組
const priceLists=document.querySelectorAll('.price');
const priceArr=Array.from(priceLists).map(item=> parseInt(item.textContent));
// 獲取數(shù)量組成的數(shù)組
const numberLists=document.querySelectorAll('body input[type=number]');
const numbersArr=Array.from(numberLists).map(item=> parseInt(item.value));
console.log(priceArr, numbersArr);
// 由于拿到的表單里的數(shù)據(jù)都是string類型的,所以需要先將其轉(zhuǎn)換成int類型,因此需要使用`map()`方法操作一下
let amountArr=[priceArr, numbersArr].reduce((prev, curr)=> prev.map((item, index)=> item * curr[index]));
console.log(amountArr);
const amountDOM=document.querySelectorAll('.amount');
amountDOM.forEach((item, index)=> item.textContent=amountArr[index]);
// 首先聲明一個(gè)數(shù)組,用于存儲(chǔ)被選中的商品的狀態(tài),如果被選中,值為1,未被選中,則為0
let isChecked=[];
checkItems.forEach(item=> isChecked.push(item.checked===true ? 1 : 0));
console.log(isChecked);
// 聲明一個(gè)用于存儲(chǔ)是商品數(shù)量的數(shù)組,該數(shù)組的作用是:如果商品處于被選中的狀態(tài),那么就存儲(chǔ)它真實(shí)的數(shù)量值,
// 如果沒有被選中,那么數(shù)量就是0
let checkedNumbers=[];
numbersArr.forEach((item, index)=> checkedNumbers.push(item * isChecked[index]));
console.log(checkedNumbers);
// 此時(shí),被選中的商品的總數(shù)為:
let checkedSum=checkedNumbers.reduce((prev, curr)=> prev + curr);
console.log(checkedSum);
// 將獲取的數(shù)量結(jié)果渲染到頁面中
document.querySelector('#sum').textContent=checkedSum;
// 下面開始計(jì)算被選中的商品的總金額,該總金額等于上面所有被選中的商品的總金額之和。
// 聲明一個(gè)數(shù)組用于存儲(chǔ)每一個(gè)被選中的商品的總金額
let checkedPrice=[];
checkedNumbers.forEach((item, index)=> checkedPrice.push(item * priceArr[index]));
console.log(checkedPrice);
// 計(jì)算被選中的商品總金額
let totalAmount=checkedPrice.reduce((prev, curr)=> prev + curr);
// 將選中的商品總金額渲染到頁面中
document.querySelector('#total-amount').textContent=totalAmount;
}
將代碼封裝后我們會(huì)發(fā)現(xiàn),單個(gè)商品的總金額,商品總數(shù)以及總金額的值都沒了,如下圖:
封裝代碼后的效果
這是因?yàn)椋a在第一次加載的時(shí)候并沒有執(zhí)行封裝后的函數(shù),因此需要加一行代碼:
// 頁面第一次加載的時(shí)候自動(dòng)執(zhí)行一次。
window.onload=autoCalculate;
這樣頁面中的數(shù)據(jù)在第一次加載的時(shí)候就全部都正常了。
下面完成最后一個(gè)功能:調(diào)整商品的數(shù)量,會(huì)自動(dòng)計(jì)算總數(shù)和金額。該功能還是通過change事件監(jiān)聽某個(gè)表單數(shù)據(jù)的變化來完成。效果圖下圖:
// 監(jiān)聽某個(gè)控件的事件,首先需要拿到控件元素。
const numInput=document.querySelectorAll('body input[type=number]');
// 上面都用了onchange來監(jiān)聽,這里換個(gè)方法使用addEventListener。
numInput.forEach(item=> item.addEventListener('change', autoCalculate));
但是我們會(huì)發(fā)現(xiàn)這里有個(gè)小bug,就是如果勾選沒有選中的商品,并不會(huì)自動(dòng)計(jì)算商品數(shù)量和總價(jià),原因很簡(jiǎn)單,我們?cè)诒O(jiān)聽單個(gè)商品選中和全選的時(shí)候根本就沒有執(zhí)行自動(dòng)計(jì)算函數(shù),只需要在二者的事件監(jiān)聽中加上自動(dòng)計(jì)算的函數(shù)即可。
checkAll.onchange=ev=> {
checkItems.forEach(item=> item.checked=ev.target.checked);
// 解決勾選全選框不會(huì)自動(dòng)計(jì)算的bug
autoCalculate();
};
checkItems.forEach(item=> item.onchange=ev=> {
checkAll.checked=Array.from(checkItems).every(checkItem=> checkItem.checked);
// 解決勾選全選框不會(huì)自動(dòng)計(jì)算的bug
autoCalculate();
});
寫到這里,我們購(gòu)物車的所有功能都已經(jīng)完成了。購(gòu)物車這個(gè)模塊看似不難,其實(shí)這里面的坑也是不少的,例如:
以上就是我個(gè)人在寫這個(gè)購(gòu)物車功能的全部新的,由于本人也是新手,可能還有其他更簡(jiǎn)介方便的寫法,如果有問題,請(qǐng)各位大佬批評(píng)指正,不勝感激。
如果有剛開始學(xué)習(xí)JS的同學(xué),想要源碼的各位親,可以關(guān)注并私信回復(fù)“購(gòu)物車”即可。
術(shù)用品對(duì)繪畫者來說是必備的,青少年、職業(yè)成年人都有較高需求度,尤其是當(dāng)今生活條件變好,各種用品種類非常多,家長(zhǎng)們也愿意在孩子身上花更多的金錢。
因此對(duì)經(jīng)營(yíng)者來說,市場(chǎng)高需求下,只滿足附近三公里客戶不足以生意增長(zhǎng)和擴(kuò)大營(yíng)收,還需要通過線上拓展更廣的群體與訂單。
而通過雨科網(wǎng)商城平臺(tái)搭建美術(shù)用品小程序商城后又有什么效果呢?「鏈接」
1、商品管理、線上銷售
美術(shù)用品種類和品牌眾多,由于大多為短期消耗品,因此購(gòu)買率相當(dāng)可以。通過小程序可將所有產(chǎn)品規(guī)格參數(shù)上架管理,詳細(xì)價(jià)格、介紹等信息呈現(xiàn),商城內(nèi)精美布局商品和頁面設(shè)計(jì)制作,精美呈現(xiàn)形式更利于促進(jìn)客戶消費(fèi)。
琳瑯滿目的線上購(gòu)物場(chǎng)景,多流量渠道利于商家分享、也利于用戶觸達(dá),包括商品分享、商城搜索、篩選等。
更可構(gòu)建電腦手機(jī)商城網(wǎng)站+微信小程序商城聯(lián)合打通多種購(gòu)物環(huán)境,同城配送+到店自提+快遞配送,客戶坐在家里直接選擇商品下單購(gòu)物即可按照自己的方式獲得商品。
線上銷售更利于和同行競(jìng)爭(zhēng),構(gòu)建私域渠道打造自己的美術(shù)電商平臺(tái)。
消息通知和訂單管理發(fā)貨備貨,以及配套工具打單、小票、對(duì)接ERP、當(dāng)面付等,輕松完成訂單流程。
2、客戶管理與持續(xù)生意增長(zhǎng)
美術(shù)用品客戶的復(fù)購(gòu)率較高,客戶在商城中注冊(cè)會(huì)員信息留存,商家可隨時(shí)查看并長(zhǎng)期管理,短信發(fā)送等。
同時(shí)長(zhǎng)期運(yùn)營(yíng)場(chǎng)景下,可通過會(huì)員積分、儲(chǔ)值、會(huì)員卡、等級(jí)體系留存客戶并長(zhǎng)期復(fù)購(gòu),利于商城回籠資金和客戶享受折扣優(yōu)惠持續(xù)復(fù)購(gòu),會(huì)員也是商城經(jīng)營(yíng)重要方式之一。
同時(shí)還有分銷,推廣員、分銷商、社區(qū)團(tuán)長(zhǎng)體系,讓會(huì)員成為推廣人員,利用自己的私域生態(tài)分享完成訂單獲得傭金收入,而商家則讓商城獲得更多曝光,更多新客與訂單。
商家后臺(tái)靈活管理,利于長(zhǎng)期發(fā)展,動(dòng)動(dòng)手指,其他人幫你賣貨。
當(dāng)然雨科網(wǎng)商城還擁有多種營(yíng)銷功能,如優(yōu)惠券、新人禮、積分商城、組合套餐、定金預(yù)售、短視頻、互動(dòng)游戲等,管理和設(shè)置方便,客戶參與更加便捷,功能強(qiáng)大,利用營(yíng)銷模式可帶動(dòng)更多商品銷售和裂變復(fù)購(gòu)等。
3、多商戶與商城后臺(tái)
美術(shù)用品客群一半都是青少年,由于地區(qū)廣泛,如果商家有多家門店,可以通過多商戶自營(yíng)體系,將所有分店上線,客戶進(jìn)入小程序可直接購(gòu)物,也可選擇附近分店下單配送或到店等,分店獨(dú)立經(jīng)營(yíng),總部統(tǒng)籌管理。
還有多商戶進(jìn)駐體系,邀請(qǐng)其他商家進(jìn)入到商城里成為子商戶,獨(dú)立后臺(tái)貨品上新、發(fā)貨、營(yíng)收等。商城管理員后臺(tái)管理商品審核、店鋪呈現(xiàn)、評(píng)星、提現(xiàn)、資料等,構(gòu)建完善的線上購(gòu)物商圈。
后臺(tái)多種功能控件模塊,現(xiàn)成賣貨小程序商城模板直接修改設(shè)計(jì)制作,輕松完成上線。
現(xiàn)在就注冊(cè)賬號(hào)進(jìn)入商城后臺(tái)搭建美術(shù)用品銷售賣貨小程序商城吧。「鏈接」
原文:https://www.zcdly.com/msypscxcx.html
TML編輯器粘貼word圖片,web編輯器粘貼word圖片,web富文本編輯器粘貼word,前端編輯器粘貼word內(nèi)容,前端web編輯器粘貼word,支持快捷鍵操作(Ctrl+V),
粘貼后word圖片自動(dòng)上傳到服務(wù)器中,然后自動(dòng)將圖片和文字HTML添加到編輯器中。
用戶這邊日常的編輯工作基本上都是在word中完成的,用戶把內(nèi)容編輯好后希望能夠直接一鍵(通過快捷鍵)粘貼到網(wǎng)站后臺(tái)新聞發(fā)布頁面的編輯器中,這樣能夠節(jié)省不少時(shí)間。提高工作效率,信息發(fā)布效率。
用戶發(fā)布新聞的時(shí)候是從word里面復(fù)制圖片和文字,然后將word圖文內(nèi)容粘貼到web富文本編輯器中,希望能夠?qū)ord的圖片自動(dòng)上傳到服務(wù)器中,服務(wù)器地址能夠自定義,后端的話需要支持任意開發(fā)語言,比如ASP,ASP.NET,JSP,PHP,PYTHON等。只要是基于標(biāo)準(zhǔn)HTTP協(xié)議的都要支持。如果能夠不裝控件最好,
實(shí)際上裝不裝都無所謂,只要好用。
1.下載示例:
http://www.ncmem.com/webapp/wordpaster/versions.aspx
2.復(fù)制WordPaster插件目錄
3.引入插件文件
注意:不要重復(fù)引入jquery,如果您的項(xiàng)目已經(jīng)引入了jq,則不用再引入jq-1.4
4.在工具欄中增加插件按鈕
6.初始化控件
注意:
1.如果接口字段名稱不是file,請(qǐng)配置FileFieldName。ueditor接口中使用的upfile字段
參考:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45
2.如果接口返回JSON,請(qǐng)配置ImageMatch
參考:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1
3.如果接口返回的圖片地址沒有域名,請(qǐng)配置ImageUrl
參考:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936
4.如果接口有權(quán)限驗(yàn)證(登陸驗(yàn)證,SESSION驗(yàn)證),請(qǐng)配置COOKIE。或取消權(quán)限驗(yàn)證。
參考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3
效果
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。