关闭网页上的对话框窗口

时间:2016-04-26 20:53:56

标签: javascript c# html dom webpage

我需要在其他人的网页内触发一些操作。到目前为止我有这个代码:

IHTMLElementCollection DeleteCollection = 
    (IHTMLElementCollection)myDoc.getElementsByTagName("a");

foreach (HTMLAnchorElement buttonDelete in DeleteCollection){
    if (buttonDelete.title != null && buttonDelete.title.StartsWith("Delete")){
        buttonDelete.click();
            // problem goes here
        myDoc.activeElement.click(); 
        SendKeys.Send("{ENTER}");
    }
}

弹出此对话框:

enter image description here

我尝试myDoc.activeElement.click();SendKeys.Send("{ENTER}");,但对话框似乎不在页面中,因此我不知道如何触发OK按钮。我该如何关闭窗户?

2 个答案:

答案 0 :(得分:13)

您无法以编程方式关闭浏览器对话框。你可以做的是劫持浏览器弹出行为。这可能适合你:

window.confirm=function(){ return true; };
window.alert=function(){ return true; };
window.prompt=function(){ return "textOfMyChoice"; };

基本上,在点击按钮之前插入此javascript。如果您想稍后恢复弹出行为,请将它们存储在另一个全局变量中。

答案 1 :(得分:0)

我想,您示例中的任何锚标记都有一个javascript本机确认对话框。 您不会以编程方式关闭此对话框。

但您可以更改所有锚元素的javascript,并使用自定义jQuery对话框替换确认对话框。这种方式允许您完全控制此对话框:关闭,隐藏,设置超时等等。

变换

<a href="..." onclick="return confirm('are you sure?')" ... >...</a>

<a href="..." onclick="return openMyjQueryDialog('are you sure?')" ... >...</a>

因此,用户可以继续正常行为,您的脚本可以完全控制所有对话框元素。