gpt4 book ai didi

JavaScript - 如何在不使用 alert() 或 window.open() 的情况下创建对话窗口?

转载 作者:行者123 更新时间:2023-11-29 09:54:31 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以在不使用 alert()、confirm()、prompt()window.open() 的情况下在 JavaScript 中创建弹出对话框>

之所以如此,是因为我希望能够将任何内容放入对话框中。任何内容。 (例如,一个文本框、div、格式化的内容,或者我希望的任何输入按钮以及任何文本),并且 alert()、confirm()、prompt() 允许您执行此操作。 prompt() 只允许一个文本框。而 alert()confirm() 只允许它是预设按钮和纯文本。我不想使用 window.open() 因为它会重新定位到不同的 url 或具有相同功能的相同 url。

另一件事是所有给定的选项 alert 用户,因此函数名称 alert()prompt() 我想要一些不那么打扰的东西。

我不想使用 jQuery 插件或自己制作插件的原因是因为我希望对话框具有操作系统原生的 GUI。

现在,我从未见过任何人 使用过它,我会说我在网上冲浪和引用方面有足够的经验。因此,如果这是不可能的,那么另一个可接受的答案是使用 alert()confirm()prompt() 自定义 按钮(无论我想要多少,标题值是多少)。

编辑: 此请求背后的原因是因为我最近一直在学习涉及 C++ 和 Python 2 的计算机科学类(class),它们能够通过调用系统 GUI 来完成此操作,但我更喜欢熟悉浏览器客户端架构。那个,我也很好奇。

编辑 2: 我不想使用可以以极端方式操纵的插件。我感兴趣的是我能用系统做什么,而不是我能用黑客做什么。

最佳答案

您所要求的可以在 JavaScript 中实现,但不能在客户端实现。在服务器端,JavaScript 在 RingoJS 上运行和 node.js .

Ringo 可以与 Java 包交互。所以你基本上可以使用 Swing在 JavaScript 中创建 GUI 应用程序。例如:

var {FlowLayout} = java.awt;
var {JButton, JFrame, JLabel} = javax.swing;

var frame = new JFrame("Hello World!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

var contentPane = frame.getContentPane();
contentPane.add(new JLabel("Hello World!"));
contentPane.add(new JLabel("Press Me!"));
contentPane.setLayout(new FlowLayout);

frame.pack();
frame.setVisible(true);

然而,在客户端,您需要使用库为您创建此类对话框或自己制作。如果您决定自己制作,则需要检测用户正在使用的操作系统并相应地设置对话框的样式。

您最好改用 jQuery UI。另外,我认为让您的 Web 应用程序看起来像 native 应用程序不是一个好主意,原因有两个:

  1. 它在所有操作系统和所有配置上看起来都不一样。所以很容易看出您试图让它看起来像本地人,这破坏了网站的感觉。而是坚持您网站的主题。
  2. 使用 jQuery UI 或其他类似的库会更容易。其他任何事情都是矫枉过正和浪费时间(至少在我看来是这样)。

关于JavaScript - 如何在不使用 alert() 或 window.open() 的情况下创建对话窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com