praveen
praveen

Reputation: 407

Format the text in JavaScript alert box

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

Answers (7)

davidkonrad
davidkonrad

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) :

enter image description here

Upvotes: 2

Igor
Igor

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

GuyT
GuyT

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

Paul S.
Paul S.

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:

firefox confirm u0332

Upvotes: 9

vladkras
vladkras

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

Sirus64
Sirus64

Reputation: 46

You can't. Use external lib as JQuery UI Dialog or your own implementation.

Upvotes: 1

Bill Criswell
Bill Criswell

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

Related Questions