Reputation: 407
How can I format the text in a JavaScript alert box? I need a word in the text to be underlined.
Upvotes: 39
Views: 79886
Reputation: 85528
Update: Browsers have started to disable Unicode support in their native dialogs, so this is a dead end.
As two answers suggest the solution is to use Unicode, but you have to do this properly! I also wanted a more reusable solution where I would not need to reinvent the wheel each and every time. So I came up with this small JavaScript function for convenience.
alert('Really need to alert some '+toUnicodeVariant('underlined', 'bold sans', 'underline')+' text');
<script src="https://rawgithub.com/davidkonrad/toUnicodeVariant/master/toUnicodeVariant.js"></script>
Should produce something like this in all major browsers (try run the code snippet above) :
Upvotes: 2
Reputation: 174
You can not style the text inside an alert box. But you can use a modal box solution instead, here's a list to get you started:
Upvotes: 4
Reputation: 4416
In my case I created internationalization through a JavaScript file. I needed a mnemonic on each button so I was looking for an easy solution. Actually, I've an easy approach to get the wanted result:
\u0332
is the Unicode Character COMBINING LOW LINE
With this character you can underline single letters.
Demonstration:
alert('S\u0332earch - s underlined');
i18n = {};
i18n.SEARCH = "S\u0332earch - s underlined";
document.getElementById('search').innerHTML = i18n.SEARCH;
<button id="search"></button>
Upvotes: 2
Reputation: 66324
Underline a string using unicode character '\u0332'
, called a COMBINING LOW LINE
function underline(s) {
var arr = s.split('');
s = arr.join('\u0332');
if (s) s = s + '\u0332';
return s;
}
var str = underline('hello world'); // "h̲e̲l̲l̲o̲ ̲w̲o̲r̲l̲d̲"
alert(str);
This method is not guaranteed to produce a smooth underline.
Example of confirm()
on Firefox 59:
Upvotes: 9
Reputation: 17228
You can use only:
\b = Backspace
\f = Form feed
\n = New line
\r = Carriage return
\t = tab
\000 = octal character
\x00 = hexadecimal character
\u0000 = hexadecimal unicode character
So, you can insert different ASCII characters, but not format them (like italic or bold).
EDIT I also have to mention, that in fact alert
acts like toString
conversion, so including tags and/or styles is not possible.
Upvotes: 42
Reputation: 46
You can't. Use external lib as JQuery UI Dialog or your own implementation.
Upvotes: 1
Reputation: 32921
This is not possible. You'd have to use a plugin. If you have jQuery installed there's a bunch to choose from. If not this one looks promising: http://simplemodal.plasm.it/#examples
Upvotes: -1