JS使用ActiveXObject完成用戶提交表單時屏蔽敏感詞技巧
發表時間:2023-04-03 來源:明輝站整理相關軟件相關文章人氣:
[摘要]本例中敏感詞ciku.txt放在C盤根目錄下,采用的ActiveXObject插件獲取本地文件內容。 使用此插件不需網上下插件, 直接用如下js代碼即可。 瀏覽器需修改interner安全選項的...
本例中敏感詞ciku.txt放在C盤根目錄下,采用的ActiveXObject插件獲取本地文件內容。 使用此插件不需網上下插件, 直接用如下js代碼即可。
瀏覽器需修改interner安全選項的級別, 啟用ActiveX才能獲取到代碼中的ActiveXObject插件。 如下圖所示:

js代碼實現如下:
<script type="text/javascript"> // -------------- 全局變量, 用來判斷文本域中是否包含臟詞,默認為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; } /* * 提交表單的主方法 * 在提交表單的時候對內容進行過濾并在文本域顯示過濾后的內容 */ function submitForm1() { var messageValue=document.getElementById("message").value; var cikuStr=readFile(); var cikuArr= new Array(); //定義數組,存儲敏感詞 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("你的留言中含有不恰當的詞語,系統已自動為你修改,是否繼續提交?"); break; }else{ //無敏感字符, 直接提交表單 document.getElementById("message_board").submit(); break; } } if(ifs){ //用戶點擊確定, 則提交表單 document.getElementById("message_board").submit(); } } /* * 對傳進來的messageValue過濾并返回新內容 */ function filterWord(messageValue){ // 根據文本域的id獲取文本域對象內容 var cikuStr=readFile(); var cikuArr= new Array(); //定義數組,存儲敏感詞 cikuArr=cikuStr.split(" "); //敏感字符分割到數組內 for (var i=0;i<cikuArr.length;i++){ messageValue=filterOneWord(messageValue,cikuArr[i]);//filterOneWord函數每次替換一個字符, 需循環調用 } document.getElementById("message").value=messageValue; //將替換后的內容顯示到文本域中 } /* * 這個函數用來過濾單個詞語, 如果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>
網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。