0

出现后是否可以更改 Javascript 警报中的文本?

例如,是否可以在警报中创建计时器?

┌────────────────────────┐
│ x seconds passed...    │
│                   <OK> │
└────────────────────────┘

... wherex将从更改0为传递的秒值。

我知道我可以使用模式或其他东西,但我想知道是否可以在它出现后更改警报框中的文本。

我想这是不可能的,但最好问问。

4

6 回答 6

2

经过一番初步搜索,似乎不可能做你想做的事。我认为这主要是出于安全原因。

不建议使用警告框,因为(WebPlatform):

  • 这是一个同步的方法调用。这意味着,调用此方法会暂停调用此方法的窗口的脚本执行,直到用户关闭显示的对话框。此外,根据您的交叉选项卡/窗口使用情况,这有时会暂停同一域中其他窗口/选项卡的脚本执行。
  • 在某些浏览器中调用此方法会阻止用户与整个浏览器或浏览器窗口(及其所有选项卡)进行交互,直到对话框关闭。
  • 侵入性对话框通常对用户来说很烦人。

您可以使用以下方法之一创建自己的对话框:

你总是可以有一个警报说:“嘿,看这里,用户,我想告诉你一些事情!” 然后使用上述之一。


另一种选择是使用 JavaScript 创建一个弹出窗口

window.open("http://example.com");

或者

您可以使用showModelDialogshowModelessDialog

在哪里可以使用dialogArguments, dialogHeight, dialogWidth, dialogLeft, 和dialogTop.

但问题是大多数人都有弹出窗口阻止程序,它会阻止你无辜的弹出窗口。


ActiveX 唯一的可能性似乎是Modified Alert Box。我没有对此进行测试,因为我没有 Windows 计算机。


还有nsIPromptServicealert/或alertCheck. 这些似乎提供了更多功能,例如添加标题或复选框。还有提示、选择等。

不幸的是,这似乎在 Javascript 中不可用。似乎它仅适用于 Firefox 扩展等(chrome 用户)。

于 2013-08-20T06:19:33.767 回答
1

我不这么认为,因为它是浏览器生成的对话框。出于明显的安全原因,我们可能无法访问它

于 2013-08-20T05:40:05.337 回答
1

让我们说“不”。甚至没有 API 可以开始这样做,也没有打算这样做。

此外,JS 在 awindow.alert()confirm(). 似乎很直截了当,这在 JavaScript 语言中工作是不可能的

使用 jQuery 模式或其他。

于 2013-08-20T05:43:12.977 回答
0

无法自定义警报。您可以从 YUI 尝试简单模式对话框。您可以按照自己的方式自定义它。还有其他可用的第 3 方组件,或者您可以自己制作。

于 2013-08-20T05:48:47.497 回答
0

显示后无法修改。如果您不惜一切代价想要这个,请使用自定义警报框解决方案。

于 2013-08-20T05:54:11.613 回答
0

您可以设置一个看起来像浏览器警报的模式框,并根据需要对其进行操作。像警报框这样的浏览器组件是不可定制的。

于 2013-08-20T05:44:06.890 回答