I need to by pass an IE confirm 'OK'/'Cancel' pop-up message. I have a problem running a JavaScript function in my VBA script. My JavaScript:

function ConfirmSave()

{

var Ok = confirm('Are you sure all Documents and Information are attached and correct before saving?');

if(Ok)

return true;

else

return false;

}

function submitbutton_click() {

document.getElementById('FileAttachement2_hdnButtonFlag').value = "SAVE";

var submitbutton = document.getElementById('cmdDownSave');

var uploadobj=document.getElementById('FileAttachement2_Uploader1');

if(!window.filesuploaded)

{

if (!ConfirmSave()) return false;

if(uploadobj.getqueuecount()>0)

{

uploadobj.startupload();

}

else

{

//var uploadedcount=parseInt(submitbutton.getAttribute("itemcount"))||0;

//if(uploadedcount>0)

//{

return true;

//}

//alert("Please browse files for upload");

}

return false;

}

window.filesuploaded=false;

return true;

}

In manual process, when I click the save button, the page will pop-up a confirm message box, and my macro will stop running when the pop-up appears unless it has been clicked.

Here is the code I have tried, to click the save button,

Set ElementNameV = HTMLDoc.getElementsByName("cmdsave")

ElementNameV(0).click

I also tried using removeattribute and setattribute with which the pop-up message disappeared but it doesn't upload the file because I need to press the 'OK' in confirm message box that will appear upon clicking the save button to start the file uploading.

ElementNameV(0).removeAttribute ("onclick")

ElementNameV(0).setAttribute "onclick", "return true"

ElementNameV(0).click

I tried running the JavaScript function using below script but it also shows the confirm pop-up message box:

Call HTMLDoc.parentWindow.execScript("submitbutton_click()")

解决方案

You should be able to overwrite the ConfirmSave function with one which simply returns true:

HTMLDoc.parentWindow.execScript "window.ConfirmSave = function(){return true;};"

or

HTMLDoc.parentWindow.execScript "window.confirm = function(){return true;};"

or even

HTMLDoc.parentWindow.eval "window.confirm = function(){return true;};"

Run that before clicking the button.

Tested and works in IE11

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐