【问题标题】:Format the text in JavaScript alert box格式化 JavaScript 警告框中的文本
【发布时间】:2013-07-02 11:46:15
【问题描述】:

如何格式化 JavaScript 警告框中的文本?我需要在文本中添加下划线。

【问题讨论】:

    标签: javascript html format alert


    【解决方案1】:

    非常需要这个,但没有一个答案特别有用。正如两个答案所暗示的,解决方案是使用 unicode,但您必须正确执行此操作!我还想要一个更可重用的解决方案,我不需要每次都重新发明轮子。所以为了方便起见,想出了this small javascript function

    alert('Really need to alert some '+toUnicodeVariant('underlined', 'bold sans', 'underline')+' text');
    <script src="https://rawgithub.com/davidkonrad/toUnicodeVariant/master/toUnicodeVariant.js"></script>

    应该在所有主流浏览器中产生类似的东西(尝试运行上面的代码 sn-p):

    【讨论】:

    • 我在 Windows 上的 Chrome 91 中得到一串带下划线的框。
    【解决方案2】:

    您不能设置警告框内的文本样式。但是您可以改用模态框解决方案,这里有一个列表可以帮助您入门:

    【讨论】:

      【解决方案3】:

      在我的例子中,我通过一个 JavaScript 文件创建了国际化。我需要每个按钮上的助记符,所以我正在寻找一个简单的解决方案。实际上,我有一个简单的方法来获得想要的结果:

      \u0332 是 Unicode 字符 COMBINING LOW LINE

      使用此字符,您可以在单个字母下划线。

      演示:

      alert('S\u0332earch - s underlined');
      
      i18n = {};
      
      i18n.SEARCH = "S\u0332earch - s underlined";
      
      document.getElementById('search').innerHTML = i18n.SEARCH;
      <button id="search"></button>

      【讨论】:

        【解决方案4】:

        使用 unicode 字符 '\u0332' 在字符串下划线,称为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);
        

        这种方法不能保证产生平滑的下划线。

        Firefox 59 上的 confirm() 示例:

        【讨论】:

        • 我需要一个提示框来在“是”中为 Y 下划线。 Y\u0332es。谢谢你。我刚刚测试了var str = underline(underline('hello world'));,如果有人想要的话,它会使下划线加倍。你也可以像这样给它 3 等等:var str = underline(underline(underline('hello world')));
        【解决方案5】:

        您只能使用:

        \b = Backspace 
        \f = Form feed 
        \n = New line 
        \r = Carriage return 
        \t = tab
        \000 = octal character 
        \x00 = hexadecimal character 
        \u0000 = hexadecimal unicode character
        

        因此,您可以插入不同的 ASCII 字符,但不能格式化它们(如 italicbold)。

        编辑我还必须提一下,事实上alert 的作用类似于toString 转换,因此不可能包含标签和/或样式。

        【讨论】:

        • 可以用unicode字符'\u0332'下划线; alert('h̲e̲l̲l̲o̲');(虽然可能不是实线)
        • @PaulS。 yep,但无论如何都没有下划线
        • 可以和hexa numbers一起做一些有趣的事情
        • 谢谢,但我很好奇您希望 \fFormFeedalert 内完成什么?
        【解决方案6】:

        你不能。 使用外部库作为JQuery UI Dialog 或您自己的实现。

        【讨论】:

          【解决方案7】:

          这是不可能的。您必须使用插件。如果您安装了 jQuery,则有很多可供选择。如果不是这个看起来很有希望:http://simplemodal.plasm.it/#examples

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-05-03
            • 1970-01-01
            • 1970-01-01
            • 2019-09-10
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多