javascript - 关闭另一个应用程序显示的警报

标签 javascript internet-explorer alert

我有一个问题,可能看起来有点模糊,但我不知道如何解决它。

我们的办公室运行一台 headless 机器,它是打印服务器,通过第三方软件连接。我遇到的问题是,如果出于某种原因,系统与主机服务器断开连接(由于我们端或他们端的连接问题),则会出现“警报”对话框,并且打印将暂停,直到出现该对话框被解雇了。

该应用程序通过 Internet Explorer 运行,并显示以下对话框。

enter image description here

我最初尝试使用Java和一个Robot来盲目地单击“确定”按钮,但问题是该对话框每次都会出现在不同的位置,有时该消息会出现多次,如果不会立即关闭,所以盲目点击屏幕坐标是行不通的。

enter image description here

我的下一个想法是搜索 PID,并按名称或 PID 终止每条消息,但是因为它是 Internet Explorer 应用程序,所以这是不可能的。

enter image description here

关于如何自动或通过外部信号盲目地忽略这些消息,有什么想法吗?

编辑

我已确定该对话框是使用 JavaScript 创建的,现在我对问题进行了更改,如何关闭此 alert() 调用?我读过,使用 JavaScript,您无法忽略该消息,但是是否有办法注入(inject)自定义脚本,以覆盖对警报的调用?

即,覆盖系统警报的死函数?

function alert(){
    // do nothing
}

如何将其附加到已加载的页面...?

最佳答案

我想您无权访问打印服务器应用程序的源代码,因此最好的方法是添加一个书签,其中包含覆盖警报的 JavaScript 代码。

小书签基本上是作为书签存储在网络浏览器中的一段代码

要创建小书签,请打开记事本并创建包含以下内容的 HTML 页面:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
  <a id="codeOut" href="javascript:(function(){ window.alert = function(){};})();">Your Bookmarklet</a>
</body>
</html>

将文件另存为“Bookmarklet.html”

使用 Internet Explorer 打开文件

右键单击“您的书签”超链接,选择“添加到收藏夹”并为其命名

加载应用程序并添加小书签后,在 IE 中选择“收藏夹”->“小书签的名称”

关于javascript - 关闭另一个应用程序显示的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706845/

相关文章:

javascript - react native : filling form without use of state (stateless form)

javascript - 如何在不呈现克拉和标签名称的情况下呈现 <select> 标签

javascript - 从 tinyMCE 编辑器中聚焦后,IE 无法将焦点和光标放在输入文本框上

css - IE - CSS 动画在动画结束时跳回

javascript - jQuery RemoveClass/addClass 模拟 Javascript

javascript - 使用 Titanium Appcelerator mobile 1.7.2 添加元素后的空数组

internet-explorer - 在 IE 中嵌入框小部件 (IFrame) 不起作用,但在 Chrome 中有效

ios - 如何在 Parse.com iOS 上禁用离线错误警报?

JavaScript 警报 onclick onchange if 语句

ios - 在 iOS 中使用 Swift 更改 UIAlertAction 的 UIAlertController 按钮标题的字体大小