Có cách nào để thay đổi vẻ bề ngoài của một cảnh báo hoặc nhắc trong JavaScript? Những thứ như thêm hình ảnh, thay đổi màu hoặc kích thước phông chữ và mọi thứ sẽ làm cho nó trông khác.Thay đổi cách Alert JavaScript() hoặc Prompt() trông
Trả lời
alert
và prompt
chức năng API cuộc gọi do trình duyệt cung cấp, do đó bạn sẽ không có bất kỳ kiểm soát nào về giao diện của chúng.
Những gì bạn có thể làm mặc dù được xác định lại những chức năng, và thay vào đó có thể sử dụng giống như jQuery phương thức, ví dụ .:
window.alert = function(message) {
// Launch jQuery modal here..
};
window.prompt = function(message) {
// Launch jQuery modal here..
};
Bạn không thể sửa đổi đó; nhưng bạn có thể sử dụng một cái gì đó như showModalDialog
, nó chỉ cần một URI để tải mẫu hmtl/css bạn muốn (nếu bạn có thể giữ nó trong một trang riêng biệt).
Mở rộng theo ý tưởng của Matthew Abbott, tôi nghĩ rằng bạn muốn có câu trả lời sử dụng Javascript cũ thuần túy mà không cần đến bất kỳ khung công tác nào. Đây là một trang nhanh chóng và dơ bẩn mà phát ra một div với một nút đóng đơn giản và thông điệp được trình bày trong trung tâm:
CSS Rough cho alertBox và nút alertClose
#alertBox{
position:absolute;
top:100px;
left:100px;
border:solid 1px black;
background-color: #528CE0;
padding: 50px;
visibility: hidden;
}
#alertClose{
position: absolute;
right:0;
top: 0;
background-color: black;
border: solid 1px white;
color: white;
width: 1em;
text-align: center;
cursor: pointer;
}
Sau đó, một số javascript để ghi đè lên xây dựng -in chức năng cảnh báo và cung cấp một chức năng đóng để xử lý các sự kiện bấm vào alertClose.
function closeAlertBox(){
alertBox = document.getElementById("alertBox");
alertClose = document.getElementById("alertClose");
alertBox.style.visibility = "hidden";
alertClose.style.visibility = "hidden";
}
window.alert = function(msg){
var id = "alertBox", alertBox, closeId = "alertClose", alertClose;
alertBox = document.createElement("div");
document.body.appendChild(alertBox);
alertBox.id = id;
alertBox.innerHTML = msg;
alertClose = document.createElement("div");
alertClose.id = closeId;
alertClose.innerHTML = "x";
alertBox.appendChild(alertClose);
alertBox.style.visibility = "visible";
alertClose.style.visibility = "visible";
alertClose.onclick = closeAlertBox;
};
Calling alert
, như Matthew Abbott đề nghị, bây giờ hiển thị div mà bạn vừa tạo và nhấn vào x gạt bỏ nó bằng cách làm cho nó vô hình.
alert("hello from the dummy alert box.");
Để triển khai, bạn cần phải thử nghiệm chức năng cảnh báo để đảm bảo bạn không tạo lại div hàng triệu lần và bạn cần phải lộn xộn với CSS để tạo nó phù hợp với màu sắc của bạn vv, nhưng đó là hình dạng thô của cách thực hiện hộp cảnh báo của riêng bạn.
Có vẻ như quá mức đối với tôi và tôi đồng ý với Matthew rằng việc thực hiện nó với một số loại hộp thoại hoặc yếu tố phương thức được tạo bằng một khung nổi tiếng như jQuery hoặc YUI sẽ tốt hơn và dễ dàng hơn về lâu dài.
Một chạy nhanh của riêng tôi, mở rộng trên một số mã trên trang này:
function closeAlertBox() {
alertBox = document.getElementById("alertBox");
alertClose = document.getElementById("alertClose");
alertBox.parentNode.removeChild(alertBox);
alertClose.parentNode.removeChild(alertClose);
}
window.alert = function (msg) {
var id = "alertBox", alertBox, closeId = "alertClose", alertClose;
alertBox = document.createElement("div");
document.body.appendChild(alertBox);
alertBox.id = id;
alertBox.innerHTML = msg;
alertClose = document.createElement("div");
alertClose.id = closeId;
document.body.appendChild(alertClose);
alertClose.onclick = closeAlertBox;
};
#alertBox {
\t position: absolute;
\t top: 30%;
\t bottom: 60%;
\t left: 40%;
\t width: 20%;
\t height: 10%;
\t background-color: white;
\t border-radius: 10px;
\t padding: 10px;
\t z-index: 2;
\t text-align: center;
\t color: black;
}
#alertClose {
\t position: absolute;
\t right: 0;
\t top: 0;
\t background-color: rgba(0, 0, 0, .5);
\t width: 100%;
\t height: 100%;
}
<html>
<body>
<h1>This is your page</h1>
<p>With some content<p>
<button onclick="alert('Send some message')">Click me</button>
</body>
</html>
Nhưng cũng có một số câu trả lời tốt ở đây:
- 1. Hình ảnh trong JavaScript Alert
- 2. JavaScript alert() tiến hệ thống thời gian bằng cách 12ms
- 3. Chạy java từ Eclipse hoặc Command prompt
- 4. Sửa alert() tiêu đề (Javascript trong Android WebView)
- 5. Alert sau khi tải trang
- 6. Thay đổi Theme.Dialog trông giống như Theme.Light.Dialog trong Android
- 7. Thay đổi con trỏ chuột trong Javascript hoặc jQuery
- 8. <form action = "javascript: alert (this);"> "this" là gì?
- 9. Javascript: Cách chặn thay đổi window.location
- 10. GameCenter đăng nhập alert
- 11. javascript prompt - thêm biến trong văn bản mặc định
- 12. javascript thay đổi innerHTML
- 13. Thay đổi hàm tạo trong JavaScript
- 14. làm mới hoặc thay đổi AlertDialog nhắn
- 15. javascript thay đổi form onsubmit động
- 16. Thêm hoặc thay đổi giá trị của khóa JSON bằng jquery hoặc javascript
- 17. JavaScript: thay đổi giá trị của onclick có hoặc không có jQuery
- 18. SSH heredoc: bash prompt
- 19. Thay đổi mảng trong hàm JavaScript thay đổi mảng bên ngoài hàm?
- 20. Cách thay đổi innerText của một <a> bằng cách sử dụng javascript
- 21. Shell Prompt Line Wrapping Issue
- 22. Thay đổi Javascript Kiểu Div
- 23. HTML5 GEOLocation 2nd prompt
- 24. Cách thay đổi ngữ cảnh của hàm trong javascript
- 25. thay đổi chuỗi thành hàm trong javascript (không phải eval)
- 26. Thay đổi các nút mặc định trong Java để làm cho chúng trông "tốt hơn"
- 27. Node.js Alert Nguyên nhân sụp đổ
- 28. SLCOmposeviewcontroller twitter sharing alert issue
- 29. Thay đổi thuộc tính màu nền của một lớp với javascript/jQuery
- 30. Thay đổi trường hợp bằng cách sử dụng Javascript regex
possibl e duplicate của [Custom alert using Javascript] (http://stackoverflow.com/questions/3391864/custom-alert-using-javascript) –
Ngoài ra [Javascript - Change Alert Icon] (http://stackoverflow.com/q/ 5806465) (cùng một câu trả lời mặc dù :) –
@Pekka 웃 Đó là hơi khác nhau.Các câu hỏi bạn đã đăng liên quan nhiều hơn đến cách ** cảnh báo ** được gửi, thay vì kiểu/giao diện của nó. – leDominatre