我正在開發一個小型文本審查器網路應用程式。每當 .js 在其自己的檔案中并且我單擊“審查文本”按鈕時,我會收到 HTTP 錯誤 405,但如果我將 js 放在 HTML 標記中,它可以正常作業。不太清楚為什么。
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document Censor</title>
<script src="/js/main.js"></script>
</head>
<body>
<h1>Text Censor</h1>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Rerum enim reiciendis recusandae aliquid delectus
consectetur nobis. Sunt exercitationem iure dolores provident obcaecati aliquam totam. Molestiae cumque ducimus
aliquid. Deserunt, provident.</p>
<form name="redacted" method="post" action="">
<textarea id="input" name="text" rows="10" cols="60">
</textarea>
<br />
<input id="formSub" type="submit" value="Censor Text" />
</form>
</body>
</html>
JS:
var div = document.getElementById('formSub');
function censorWords(event) {
event.preventDefault();
var textContent = document.getElementById('input');
var redacted = ["boston", "red", "sox"];
console.log(textContent.value)
textContent.value = censored(textContent.value, redacted);
}
function censored(string, filters) {
console.log('in')
// "i" ignores case, "g" for global and "|" for OR match
var regexp = new RegExp(filters.join("|"), "gi");
return string.replace(regexp, function (match) {
//this is where the words are replaced with X
var censorship = '';
for (var i = 0; i < match.length; i ) {
censorship = 'x';
}
return censorship
})
}
div.addEventListener('click', censorWords)
uj5u.com熱心網友回復:
我不確定,但我猜你需要將你的移動<script src=""/>
到身體的末端。
因為 javascript 是在 HTML 本身之前加載的。
<body>
-
-
-
-
-
<script src="/js/main.js"></script>
</body>
uj5u.com熱心網友回復:
顯示錯誤405( method not allowed) 是因為表單已提交并使用該post方法,但 Web 服務器不允許發布到簡單的 html 檔案。
提交按鈕提交表單,因為事件偵聽器未正確鏈接到censorWords函式。
首先,如果您只想觸發一些 JavaScript 執行,則不需要表單,也不需要提交型別的按鈕。洗掉表單并制作 的按鈕type=button。
其次,在 javascript 代碼嘗試訪問檔案的某些部分之前,您應該確保檔案已完全加載。請參閱沒有 jQuery 的 $(document).ready 等效項,了解如何實作該目標的幾種方法。要么等待檔案完全加載,然后才執行代碼以連接其他事件。或者使用標簽defer上的屬性script來推遲外部代碼的執行,直到檔案完全加載。
uj5u.com熱心網友回復:
405 錯誤表示方法不允許
您的 JS 代碼沒有發出任何 http 請求,所以我的猜測是,當您將 JS 放在單獨的檔案中時,它實際上根本沒有運行,所以當您按下按鈕時,它只是提交表單
當 JS 在單獨的檔案中時,您仍然需要一個元素來將 JS 檔案包含在 html 檔案中
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/496614.html
標籤:javascript html
上一篇:導航欄內容在翻譯后失去所有樣式
