有人知道为什么我总是收到此消息吗?拒绝运行 JavaScript URL,因为它违反了以下内容安全策略指令:“default-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-...”)或随机数(“nonce-...”)。另请注意,“script-src”未明确设置,因此“default-src”用作后备。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>Title</title>
<script type="text/javascript">
function checkoutForm() {
var inputValue = document.querySelectorAll('.form-control')[0].value;
alert('Your input value: ' + inputValue);
window.open('/search/' + inputValue);
}
</script>
</head>
<body>
<form class="navbar-search navbar-search-dark form-inline mr-3 d-none d-md-flex ml-lg-auto" method="get"
action="javascript:checkoutForm()">
<div class="form-group mb-0">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-search"></i></span>
</div>
<input class="form-control" placeholder="Search" type="search" value>
</div>
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
小智 5
Form 的action属性只能包含 URI。请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#Attributes
您的表单action属性包含 JavaScript 代码。
从您的代码中,我看到您正在尝试使用 JS 将搜索关键字附加到 URL。这不是必需的。由于您的表单method属性为get,因此在表单提交期间,搜索关键字将自动附加到 URL 中。
将action属性设置为/search,这应该可以解决您的问题