我需要在其他人的网页内触发一些操作。到目前为止我有这个代码:
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}");
}
}
弹出此对话框:
我尝试myDoc.activeElement.click();
和SendKeys.Send("{ENTER}");
,但对话框似乎不在页面中,因此我不知道如何触发OK
按钮。我该如何关闭窗户?
答案 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>
因此,用户可以继续正常行为,您的脚本可以完全控制所有对话框元素。