我想將行內 js 函式更改為 Chrome 擴展的普通 JS 腳本。
示例代碼
<!DOCTYPE html>
<html>
<body>
<p>Select your favorite browser:</p>
<form action="/action_page.php">
<input type="radio" name="browser" onclick="myFunction(this.value)" value="Internet Explorer">Internet Explorer<br>
<input type="radio" name="browser" onclick="myFunction(this.value)" value="Firefox">Firefox<br>
<input type="radio" name="browser" onclick="myFunction(this.value)" value="Opera">Opera<br>
<input type="radio" name="browser" onclick="myFunction(this.value)" value="Google Chrome">Google Chrome<br>
<input type="radio" name="browser" onclick="myFunction(this.value)" value="Safari">Safari<br><br>
Your favorite browser is: <input type="text" id="result">
<input type="submit" value="Submit form">
</form>
<script>
function myFunction(browser) {
document.getElementById("result").value = browser;
}
</script>
</body>
</html>
這是我嘗試過的,但沒有按預期作業
<!DOCTYPE html>
<html>
<body>
<p>Select your favorite browser:</p>
<form action="/action_page.php">
<input type="radio" name="browser" value="Internet Explorer">Internet Explorer<br>
<input type="radio" name="browser" value="Firefox">Firefox<br>
<input type="radio" name="browser" value="Opera">Opera<br>
<input type="radio" name="browser" value="Google Chrome">Google Chrome<br>
<input type="radio" name="browser" value="Safari">Safari<br><br>
Your favorite browser is: <input type="text" id="result">
<input type="submit" value="Submit form">
</form>
<script>
const browsers = document.getElementsByName("browser");
browsers.forEach(function(browser){
myFunction(browser.value);
});
function myFunction(browser) {
document.getElementById("result").value = browser;
}
</script>
</body>
</html>
怎么解決是這個。我想更改 radioButton 的 onChange/onClick 值。
uj5u.com熱心網友回復:
在您的第二個示例中,您忘記將該myFunction函式實際添加為事件偵聽器。為此,您應該查看addEventListener。
您的腳本必須是這樣的:
<script>
const browsers = document.getElementsByName("browser");
browser.forEach(function(browser) {
browser.addEventListener('click', function() {
myFunction(browser);
});
});
function myFunction(browser) {
document.getElementById("result").value = browser;
}
</script>
我們必須創建一個匿名函式的原因myFunction是因為我們使用引數呼叫它。如果我們只是簡單地傳遞myFunction(browser),該函式將簡單地被執行,而不是作為回呼傳遞給事件偵聽器
uj5u.com熱心網友回復:
在您的新代碼中,您需要為每次選擇單選按鈕時添加一個事件偵聽器。您的代碼從不呼叫例程來更改任何內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391352.html
標籤:javascript 节点.js 功能 谷歌浏览器扩展
下一篇:JsRegex只允許字符出現一次
