JS使用ActiveXObject實(shí)現(xiàn)用戶提交表單時屏蔽敏感詞功能
本例中敏感詞ciku.txt放在C盤根目錄下,采用的ActiveXObject插件獲取本地文件內(nèi)容。使用此插件不需網(wǎng)上下插件,直接用如下js代碼即可。
瀏覽器需修改interner安全選項的級別,啟用ActiveX才能獲取到代碼中的ActiveXObject插件。如下圖所示:
js代碼實(shí)現(xiàn)如下:
<script type="text/javascript"> // -------------- 全局變量,用來判斷文本域中是否包含臟詞,默認(rèn)為false,即不包含臟詞------- var isDirty = false; //使用ActiveX讀取本地文件獲取dirtyword詞庫 function readFile(){ //var ForReading = 1; var fso = new ActiveXObject("Scripting.FileSystemObject"); openF = fso.OpenTextFile("c:\\ciku.txt", 1); var cikuStr= openF.ReadAll(); return cikuStr; } /* * 提交表單的主方法 * 在提交表單的時候?qū)?nèi)容進(jìn)行過濾并在文本域顯示過濾后的內(nèi)容 */ function submitForm1() { var messageValue=document.getElementById("message").value; var cikuStr=readFile(); var cikuArr= new Array(); //定義數(shù)組,存儲敏感詞 cikuArr=cikuStr.split(" "); //敏感字符分割 for (var i=0;i<cikuArr.length;i++){ var flag=cikuArr[i]; if(messageValue.indexOf(flag)>=0){ //查找文本域中是否包含敏感字符,是則替換 filterWord(messageValue); var ifs=confirm("你的留言中含有不恰當(dāng)?shù)脑~語,系統(tǒng)已自動為你修改,是否繼續(xù)提交?"); break; }else{ //無敏感字符,直接提交表單 document.getElementById("message_board").submit(); break; } } if(ifs){ //用戶點(diǎn)擊確定,則提交表單 document.getElementById("message_board").submit(); } } /* * 對傳進(jìn)來的messageValue過濾并返回新內(nèi)容 */ function filterWord(messageValue){ // 根據(jù)文本域的id獲取文本域?qū)ο髢?nèi)容 var cikuStr=readFile(); var cikuArr= new Array(); //定義數(shù)組,存儲敏感詞 cikuArr=cikuStr.split(" "); //敏感字符分割到數(shù)組內(nèi) for (var i=0;i<cikuArr.length;i++){ messageValue=filterOneWord(messageValue,cikuArr[i]);//filterOneWord函數(shù)每次替換一個字符,需循環(huán)調(diào)用 } document.getElementById("message").value=messageValue; //將替換后的內(nèi)容顯示到文本域中 } /* * 這個函數(shù)用來過濾單個詞語, 如果messageValue中含有oneDirtyWord, 則用"**"替換這個oneDirtyWord * messageValue --- 要過濾的語句 */ function filterOneWord(messageValue,oneDirtyWord){ var str=messageValue.replace(new RegExp(oneDirtyWord,'g'),"**"); return str; } </script>
表單部分代碼:
<body> <form name="message_board" id="message_board" action="aaa.html"> <textarea name="message" id="message" cols="50" rows="10"> "This is you post messsage" ——phpdream </textarea><br/> <input type="button" value="提交留言" id="submitMessage" onclick="submitForm1()"/> </form> </body>
- AngularJS表單提交實(shí)例詳解
- js表單提交和submit提交的區(qū)別實(shí)例分析
- 符合標(biāo)準(zhǔn)的js表單提交的代碼
- JavaScript使用ActiveXObject訪問Access和SQL Server數(shù)據(jù)庫
- JavaScript中使用ActiveXObject操作本地文件夾的方法
- js之ActiveX控件使用說明 new ActiveXObject()
- 原生js ActiveXObject獲取execl里面的值
- js借助ActiveXObject實(shí)現(xiàn)創(chuàng)建文件
- javascript下用ActiveXObject控件替換word書簽,將內(nèi)容導(dǎo)出到word后打印
相關(guān)文章
doctype后如何獲得body.clientHeight的方法
doctype后如何獲得body.clientHeight的方法...2007-07-07JavaScript實(shí)現(xiàn)將UPC轉(zhuǎn)換成ISBN的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)將UPC轉(zhuǎn)換成ISBN的方法,涉及javascript字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-05-05JavaScript 經(jīng)典實(shí)例日常收集整理(常用經(jīng)典)
本文是小編日常收集整理些js經(jīng)典實(shí)例,非常具有參考借鑒價值,需要的朋友一起了解了解吧2016-03-03輸入框點(diǎn)擊時邊框變色效果的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄斎肟螯c(diǎn)擊時邊框變色效果的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-12-12js change,propertychange,input事件小議
github上關(guān)于mootools一個issue的討論很有意思,所以就想測試記錄下。感興趣的可以點(diǎn)擊原頁面看看2011-12-12JavaScript實(shí)現(xiàn)流星雨效果的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)簡易的流星雨的效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06JavaScript變量提升和嚴(yán)格模式實(shí)例分析
這篇文章主要介紹了JavaScript變量提升和嚴(yán)格模式,結(jié)合實(shí)例形式分析了javascript變量提升和嚴(yán)格模式的原理及相關(guān)操作注意事項,需要的朋友可以參考下2019-01-01Javascript實(shí)現(xiàn)DIV滾動自動滾動到底部的代碼
一個比較特殊的客戶要求,在一個頁面用表格顯示數(shù)據(jù),數(shù)據(jù)量不是很多,不希望使用瀏覽器的滾動條,只能在Div中滾動table中的數(shù)據(jù),但是有個特殊的要求,就是必須將滾動條自動滾動到底部2012-03-03JS是否可以跨文件同時控制多個iframe頁面的應(yīng)用技巧
這篇文章給大家詳細(xì)介紹了JS是否可以跨文件同時控制多個iframe頁面的應(yīng)用技巧,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2007-12-12