admin管理员组

文章数量:1314015

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()")

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()")
Share Improve this question edited Feb 1, 2019 at 17:19 pnuts 59.5k11 gold badges91 silver badges141 bronze badges asked May 14, 2015 at 2:05 SandySandy 231 gold badge1 silver badge8 bronze badges 8
  • May I ask why you aren't using the native VBA/VBScript methods? – Bryan C. Commented May 14, 2015 at 2:21
  • @BryanC. what do u mean by native VBA methods? can you share some suggestions on how do I able to control the pop-up confirm message when it appears? because my codes stop running when I click the save button and the pop-up appears – Sandy Commented May 14, 2015 at 2:25
  • Take a look at this page... this is a VBScript OK/Cancel message box: stackoverflow./questions/3062401/… see selected answer at the top. – Bryan C. Commented May 14, 2015 at 2:27
  • This may or may not be useful depending on what you're doing. – Bryan C. Commented May 14, 2015 at 2:35
  • that's not what I am looking for, I do not need to create a pop-up message. what I need is to handle the pop-up message that will appear when my I click the save button from a web page. – Sandy Commented May 14, 2015 at 2:36
 |  Show 3 more ments

2 Answers 2

Reset to default 4

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

So I've read your question a few times now and I think that to achieve what you want to do you are going to have to pletely change your approach to the problem. You need to read up on Javascript Concurency, Javascript Web Workers, and the Javascript Event Loop.

Just throw these terms into Google and you'll find lots of great resources to learn about this.

By default Javascript is a single threaded language and it halts while waiting for events to plete their activities. What you seem to be looking for based on how I'm reading your question is a way for your Javascript to keep performing actions while a user prompt is being displayed.

While this is not an endorsement, I will throw out this one link to get you started.

本文标签: How to call JavaScript function in VBAStack Overflow