① 如何在自己的前端頁面中加入富媒體編輯器,哪個富媒體編輯器好用,求大神解答!
ckeditor吧,我用的就是這個
② 前端用什麼編輯器
高效的Web前端開發工具:
1、Prettier Playground
Prettier是一個代碼格式化程序,支持JavaScript,包括ES2017、JSX、Angular、Vue、Flow、TypeScript等。它可以移除你的原始格式,並且將其替換為遵循最佳運行方式的、標準的一致樣式。如此便捷的工具在我們的編輯器中十分流行,與此同時它還有一個線上版本,可以在線完成對代碼格式的修正。
2、EnjoyCSS
運用CSS,非常簡單的工具就是遇到困難時的救星。EnjoyCSS可以讓你通過簡單的UI設計你的元素,並且提供相關的CSS輸出。
3、StackBlitz
根據Chime Nnamdi顯示,StackBlitz是每名使用者都很喜歡的一款在線編輯工具。最重要的一點就是,它將IDE引入了web——Visual Studio Code中。只要在StackBlitz中點擊一下,你就可以設置Angular、React、Ionic、TypeScript、RxJS、Svelte以及其他JavaScript框架。由於它的操作十分便捷,在打開StackBlitz後的五秒之內,你就可以開始編輯代碼了。
StackBlitz十分好用,尤其在嘗試簡化代碼片段或在線資料庫方面,你可能沒有時間從頭開始創建新的項目,而只是嘗試新的功能。而通過StackBlitz不需要創建新的項目就可以在短短幾分鍾內試用新的NPM軟體包。
4、Postman
Postman就一直在我的開發人員工具集中。它在後端檢查GET、POST、DELETE、OPTIONS和PUT在內的一系列端點這方面,起到了非常顯著的作用。
5、CanIUse
CanlUse非常的簡便,可以幫你弄清楚期望實現的功能,是否與你使用的瀏覽器兼容。很多開發者都會遇到瀏覽器的兼容問題,在這個瀏覽器上可以正常使用的,但換一個瀏覽器就不支持了。
6、Bit.dev
一個軟體開發的基本原則就是代碼的可重復使用性,它確保你可以減少開發量,而不需要去從頭構建組件。這確實是Bit.dev可以做到的,它允許共享可重復使用代碼片段和組件,從而減少開銷,並且加快你的開發進程。Bit.dev還允許在團隊之間共享組件,讓你的團隊可以與其他團隊進行協作。
以上就是今天為大家分享的Web前端開發常用的6款提高工作效率的開發工具。大家要是想提供自己的工作效率,現在就趕緊用起來吧!
③ 前端開發 要做一個類似公眾號平台那樣可以編輯文案的頁面,有什麼框架或者模板推薦嗎
最近剛做了一個微信圖片投稿的小應用。前端功能很簡單,填寫表格,上傳圖片。圖片部分用了微信的 JS SDK,同時兼容非微信瀏覽器或低版本微信(也就是調用系統input啦)。
前端我用的是 React+Bootstrap。因為我現在就靠這一套通吃。。。(別的不會
頁面文檔:1.4KB
css:1.9KB,
bootstrap.min.js:120KB,
app.js:138.2KB,
微信 JS SDK:9.4KB
字體:17.9KB
一共279.4KB,用起來還 OK,實際上這個應用頁面很簡單,不用 Bootstrap 完全可以(我就是懶),體積一下就能減少43%。
測試過的機型包括 iPhone 5s+,Nexus 5,小米 Note,魅族 MX5,MOTO X Style,三星 Galaxy 4,OPPO A31。iOS 微信版本6.3.9,Android 微信版本6.3.8,OPPO 的微信版本是5.3,不支持 chooseImg 介面。
事實上微信頁面並不會太復雜,或者說太復雜的頁面並不適合微信,復雜度應該在產品設計階段就解決掉,如果前端需要上重武器才能完成需求,不如回過頭好好想想產品設計的問題~
④ js如何實現點擊編輯按鈕,前端table表格行內指定td可修改。(table是動態生成的)
functionready(){varurl=base_path+"console/cfg/getBaseLayers/"+configId;$.ajax({url:url,type:"get",dataType:"json",success:function(result){//生成之前先清空tr,防止AJAX非同步載入重復生成$("#lottr").remove();varlength=result.length;for(vari=0;i<length;i++){varname=result[i].name;//服務名稱varalias=result[i].alias;//服務別名vartype=result[i].type;//服務類型varyear=result[i].year;//年份varurl=result[i].url;//服務地址varvisible=result[i].visible;//是否可見varid=result[i].id;//idserviceIdArray[i]=id;//此處將id塞給serviceIdArray,用於判斷是否添加。varstr="";if(visible==true){//生成trstr+='<trid="';str+=id;str+='"';str+='class="lot_box"><td>';str+=i+1;str+='</td><td>';str+=name;str+='</td><td>';str+=alias;str+='</td><td>';str+=type;str+='</td><td>';str+=year;str+='</td><td>';str+=url;str+='</td><td>';str+='<inputid="';str+=id;str+='"';str+='type="checkbox"checked="true"onchange="modifyService(this.id);"/>';str+='</td><td><inputid="';str+=id;str+='"';str+='type="button"value="編輯"onclick="editTd(this.id)"/>';str+='</td><td>';str+='<buttonclass="rosy"id="';str+=id;str+='"';str+='onclick="deleteService(this.id);">';str+='<imgsrc="static/img/del14.png"></button>';str+='</td></tr>';
}else{//生成trstr+='<trid="';str+=id;str+='"';str+='class="lot_box"><td>';str+=i+1;str+='</td><td>';str+=name;str+='</td><td>';str+=alias;str+='</td><td>';str+=type;str+='</td><td>';str+=year;str+='</td><td>';str+=url;str+='</td><td>';str+='<inputid="';str+=id;str+='"';str+='type="checkbox"onchange="modifyService(this.id);"/>';str+='</td><td><inputid="';str+=id;str+='"';str+='type="button"value="編輯"onclick="editTd(this.id)"/>';str+='</td><td>';str+='<buttonclass="rosy"id="';str+=id;str+='"';str+='onclick="deleteService(this.id);">';str+='<imgsrc="static/img/del14.png"></button>';str+='</td></tr>';
}var$tr=$(str);$("#lot").append($tr);
}
}
});
}
2)
//修改table行內元素(td)functioneditTd(id){//選中編輯按鈕的時候,把這行指定的幾個td變成文本框varb=$("input[type='button'][id='"+id+"']").parent();//tdvara=b.siblings();//td的兄弟節點if(a[1].children.length===0){a[1].innerHTML="<inputtype='text'value='"+a[1].innerText+"'/>";
}
if(a[2].children.length===0){a[2].innerHTML="<inputtype='text'value='"+a[2].innerText+"'/>";
}
if(a[3].children.length===0){a[3].innerHTML="<inputtype='text'value='"+a[3].innerText+"'/>";
}//將編輯改成保存和取消兩個按鈕b[0].innerHTML="<inputid='"+id+"'type='button'onclick='saveEditTd(this.id);'value='保存'/><inputtype='button'onclick='resertEditTd();'value='取消'/>";
//以下注掉的都是在網上找的參考。/*alert(a[0].getText());var$this=$(this).index();alert($this);*//*$('input[type="button"]').on('click',function(){var$this=$(this).parent().parent();//trready();});*//*var$=function(node){returntypeofnode=="string"?document.getElementById(node):node;}var$1=function(node,parent){varnd=document.createElement(node);if(parent)parent.appendChild(nd);returnnd;}/!**綁定事件流*!/varbind=function(obj,eventName,funcionName){if(obj.addEventListener){obj.addEventListener(eventName,funcionName,false);}elseif(obj.attachEvent){obj.attachEvent("on"+eventName,funcionName);}else{obj["on"+eventName]=funcionName;}};varfulltable=function(tbody,data){varpd=data.data;varcolumn=data.column;for(vari=0,len=data.rows;i<len;i++){vartr=$1("tr",tbody);varcd=pd[i];for(varj=0,jlen=column.length;j<jlen;j++){vartd=$1("td",tr);td.innerHTML=cd[column[j]];//innerText不兼容火狐,可以自己寫innerText和textContent的兼容,這里就直接用innerHTML了}}}varlittlehow_edit_table=function(tbody,ev){this.tbody=$(tbody);this.event=ev?ev:"click";//默認為單機事件this.init=function(data){//data可以是undefinedif(data){fulltable(this.tbody,data);}//調用可編輯this.edit();}this.edit=function(){vartds=this.tbody.getElementsByTagName("td");for(vari=0,len=tds.length;i<len;i++){bind(tds[i],this.event,this.click);}}this.click=function(){//alert(this.children.length);if(this.children.length>0)return;varv=this.innerHTML;this.innerHTML="";varinput=$1("input",this);input.type="text";input.value=v;input.focus();//游標聚集bind(input,"blur",blur);}varblur=function(){varv=this.value;this.parentNode.innerHTML=v;}}window.$$=function(id,ev){returnnewlittlehow_edit_table(id,ev);};*//*$('.editable').handleTable({"handleFirst":true,"cancel":"<spanclass='glyphiconglyphicon-remove'></span>","edit":"<spanclass='glyphiconglyphicon-edit'></span>","add":"<spanclass='glyphiconglyphicon-plus'></span>","save":"<spanclass='glyphiconglyphicon-saved'></span>","confirm":"<spanclass='glyphiconglyphicon-ok'></span>","operatePos":-1,"editableCols":[2,3,4],"order":["add","edit"],"saveCallback":function(data,isSuccess){//這里可以寫ajax內容,用於保存編輯後的內容//data:返回的數據//isSucess:方法,用於保存數據成功後,將可編輯狀態變為不可編輯狀態varflag=true;//ajax請求成功(保存數據成功),才回調isSuccess函數(修改保存狀態為編輯狀態)if(flag){isSuccess();alert(data+"保存成功");}else{alert(data+"保存失敗");}returntrue;},"addCallback":function(data,isSuccess){varflag=true;if(flag){isSuccess();alert(data+"增加成功");}else{alert(data+"增加失敗");}},"delCallback":function(isSuccess){varflag=true;if(flag){isSuccess();alert("刪除成功");}else{alert("刪除失敗");}}});*//*//dom創建文本框varinput=document.createElement("input");input.type="text";//得到當前的單元格varcurrentCell;functioneditCell(event){if(event==null){currentCell=window.event.srcElement;}else{currentCell=event.target;}//根據Dimmacro的建議修定下面的bug非常感謝if(currentCell.tagName=="TD"){//用單元格的值來填充文本框的值input.value=currentCell.innerHTML;//當文本框丟失焦點時調用lastinput.onblur=last;input.ondblclick=last;currentCell.innerHTML="";//把文本框加到當前單元格上.currentCell.appendChild(input);//根據liu_binq63的建議修定下面的bug非常感謝input.focus();}}functionlast(){//充文本框的值給當前單元格currentCell.innerHTML=input.value;}//最後為表格綁定處理方法.document.getElementById("table").ondblclick=editCell;*//*varttr=$(this).val()=="編輯"?"確定":"編輯";$(this).val(ttr);//按鈕被點擊後,在「編輯」和「確定」之間切換$(this).parent().siblings("td").each(function(){//獲取當前行的其他單元格varobj_text=$(this).find("input:text");//判斷單元格下是否有文本框if(!obj_text.length)//如果沒有文本框,則添加文本框使之可以編輯$(this).html("<inputtype='text'value='"+$(this).text()+"'>");else//如果已經存在文本框,則將其顯示為文本框修改的值$(this).html(obj_text.val());});*//*$('input[type="button"]').on('click',function(){var$this=$(this);var$td_arr=$this.parent().html('保存').prevAll('td');$.each($td_arr,function(){var$td=$(this);$td.html('<inputtype="text"value="'+$td.html()+'">');});});*/}
3)
//取消editTd編輯functionresertEditTd(){ready();//此方法是自己寫的,局部刷新頁面,重新載入數據
}
//保存editTd編輯functionsaveEditTd(id){vara=$("input[type='button'][id='"+id+"']").parent().siblings();//td的兄弟節點vartd_name=a[1].children[0].value;//服務名稱vartd_alias=a[2].children[0].value;//服務別名vartd_type=a[3].children[0].value;//服務類型varurl=base_path+"console/cfg/saveEditTd";$.ajax({url:url,type:"post",data:{"td_name":td_name,"td_alias":td_alias,"td_type":td_type,"id":id,"tpl":configId},datatype:"json",success:function(result){ready();//此方法是自己寫的,局部刷新頁面,重新載入數據
}
});
}
⑤ 求可視圖化編輯的web前端框架,可隨意自定義組態畫面
不得不推薦 HT for Web,滿足你這個要求可以說是非常容易的,而且我看他們官網上好像有一個你這個圖類似的,我找找圖
這幾個都跟你的圖類似吧 我覺得還是很強的一個框架,上手很容易倒是,是收費的
⑥ 如何從頭做一個復雜的可拖拽前端頁面編輯器界面,求思路
這種軟體應該叫做組態軟體,比如微軟的Viso,而且微軟也提供了Viso的開發SDK以供開發之用, 除此,Visual Studio也還提供了一個擴展控制項,DSL專門提供這樣的開發介面。 如果這些都不能滿足你的要求的話,在C#中也有用WPF的畫布(Canvas)來實現的
⑦ 前端組件「可編輯表格」,怎麼設計才好
第一,view層,需要分層設計;
第二,model層,需要讓數據來控制view層;
思路的話,可以參考react的生命周期概念:
1,插入dom;
2,獲得新數據,重新渲染dom;
3,刪除dom;
咱們也一樣給這三種狀態各提供二種處理函數,
will是事前調用;
did是事後調用;
還要有公開出來的setget方法
⑧ 現在比較好用的前端開發工具有哪些啊
1. node.js + npm, 這個是前端工具的一個平台,沒有他們就沒有以下的工具,建立開發環境,下載開發工具,運行開發工具的利器
2. bower, 庫依賴管理器,類似於npm,但針對瀏覽器JavaScript的依賴管理,減少尋找庫,下載庫和升級庫的煩惱
3.grunt,流程自動化管理工具,將你非編程的開發步驟減到最小,grunt watch+liveReload或者grunt connect,可以使得免除你F5無盡地獄,發布和開發各種無壓力。以下大部分開發工具,都有grunt的相對應的插件,也就是說他們都能利用grunt進行自動化運行
5. 本人用less比較多,因為基本無縫兼容歷史遺留系統中的css,(而Sass語法比較特殊,還沒有專門用過,應該開發新系統的css比較好),一套css預編譯語言,可以把less語法轉成css語法,lessc是less語言編譯器,配合grunt less,編寫大型css文檔毫無壓力。
6.Phantomjs,沒有界面的瀏覽器,用js腳本控制其操作網頁。測試,抓圖,網頁流程自動化利器。配合casperjs的語法簡化功能真強庫後,控制Phantomjs就更加容易了
7. grunt PhotoBox, 利用phantomjs抓圖功能和ImageMagick圖片比較功能,在利用live-reload即時刷新功能,可以讓你開發css的時候,快速對n多個頁面進行觀察,看其前後變化。不過缺點也比較明顯,就是速度慢。但比起手動對比來看,還是非常快的。值得css開發時擁有
8. phantomCSS,這個和grunt photobox類似,都用於css開發的,差別是photobox是全局觀察差別,而這個是單元組件觀察差別,它方便你就抓頁面中某一塊元素然後進行前後比較,更加註重細節上的差異,這個比較合適組件開發時候使用。
9. jshint,幫助你快速定位JavaScript的語法錯誤和潛在的跨瀏覽器兼容性問題。在部署你JS前,用jshint檢查一下是沒錯的 。
10.UglifyJS,壓縮JavaScript代碼,使你的JS代碼可以更加快速的載入。有grunt的插件
11. browserify允許你在瀏覽器裡面使用CMD標准模塊,但本人認為它的另外一個優勢是合並代碼,開發時候可以把代碼模塊化,分成很多很多小文件,然後有調理的放到相對應文件夾下,然後最後合成單一文件。本人曾經利用browserify開發greasemonkey代碼,大大簡化了greasemonkey的開發難度和增強了greasemonkey代碼的質量。browserify有grunt插件,這樣又減少的開發步驟。
12. Karma, google開發的一個單元測試運行器,這個自己本身不是一個單元測試框架,而是配合測試單元框架的一個工具。由於前端瀏覽器眾多,就算你有live-reload這樣自動化工具,但是還是要手動打開各種瀏覽器,手動把你的單元測試在各個瀏覽器都運行一遍。這個工具目的是目的就是讓電腦能自動化打開各種瀏覽器,然後把單元測試在各個瀏覽器中自動運行一遍,讓這個步驟也能自動化了。
13.clean-css (grunt cssmin), 我用的是grunt cssmin,但是grunt cssmin實際上背後使用的是clean-css工具,這個工具就是用來壓縮精簡css的,讓css文件大小更小。
⑨ 前端常用的幾種在線代碼編輯器各有什麼優勢
JS Bin - Collaborative JavaScript Debugging
介紹一款在線編輯器:jsbin jsbin的用法
優點:不需要登錄,即發即預覽
缺點:速度不靠譜
RunJS - 在線編輯、展示、分享、交流你的 JavaScript 代碼
優點:國內訪問速度快,可以上傳圖片(左下角)
缺點:需要登錄,用戶名
Create a new fiddle
優點:功能強大,歷史記錄給力,缺點:訪問速度慢
⑩ 做前端,那種編輯器最好用
前端程序員最愛用的8款代碼編輯器:
Adobe Dreamweaver CC、Atom、Sublime Text、Brackets、WebStorm 11、Notepad++、HBuilder、Beyond Compare