【问题标题】:Change format and text displayed with JavaScript prompt()?更改使用 JavaScript prompt() 显示的格式和文本?
【发布时间】:2012-05-08 15:56:53
【问题描述】:

我正在使用 JavaScript 的 prompt() 函数。

  var favorite = prompt('What is your favorite color?', 'RED');

我使用的是 IE 7,打开的提示框有一个标题栏,上面写着:'Explorer User Prompt' 和更多的文字,上面写着'Script Prompt:' 然后下面是我的文字:'你最喜欢的颜色是什么? “确定”和“取消”按钮也出现在提示框的最右侧,文本输入框出现在对话框的最底部。

有没有什么方法可以改变标题栏,删除文本“脚本提示”,并将确定和取消按钮放在文本输入框下方?

【问题讨论】:

标签: javascript prompt


【解决方案1】:

是的。不依赖浏览器 UI(实际上在某些浏览器中默认禁用),而是自己制作。

只需要一个带有表单的简单模态对话框,一切都很好。唯一的缺点是它不会再被阻塞(如果你认为这是一个缺点的话),所以你需要将其余代码放在一个回调中,当提示关闭时会调用它。

【讨论】:

  • 有第三方模态弹出jQuery控件可以淡出页面并且可以阻止进入直到点击OK/Cancel。
  • 确实,有。当然,我只是用大约 20 行更容易使用的代码(至少对我而言)编写了自己的代码。我得到了无限的按钮,带有自定义文本,每个都有自己的功能,以及我想要的任何输入(或任何 HTML)和各种可能不在 jQuery 中的有用功能,因为它会是对大多数人来说太复杂了......
【解决方案2】:

不,我不这么认为。问题是人们会恶意使用提示,所以微软补充说,让它看起来更像是一个特定于页面的提示,而不是一个 IE 提示。

你可以用 jQuery 或其他东西做一个页面内对话框:

http://www.abeautifulsite.net/blog/2008/12/jquery-alert-dialogs

【讨论】:

    【解决方案3】:

    简短回答:不。

    更长的答案:不,但是您可以使用 jQuery 的 UI 库来滚动您自己的弹出窗口,或者自己使用 DOM 修改一些东西。

    【讨论】:

      【解决方案4】:

      不,没有。

      最接近的方法是使用 DOM 元素模拟一个假的。

      【讨论】:

        【解决方案5】:

        不完全是问什么,但我发现给提示框一些格式的唯一方法......

        使用this answerthis answerthese HTML symbols,可以发挥创意并实现这一目标:


        演示:

        var balls = '\u25CD'.repeat(24),
            blue = '\u27BF', 
            red = '\u274C', 
            yellow = '\u2728', 
            green = '\u2705',
            arrow = '\u25B8';
            
        window.prompt(balls+' \u25C9 '+balls+'\rWhat is your favorite color?\r\t'+arrow+' B\u0332lue '+blue+'\r\t'+arrow+' R\u0332ed '+red+'\r\t'+arrow+' Y\u0332ellow '+yellow+'\r\t'+arrow+' G\u0332reen '+green);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多