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
2 Answers
Reset to default 4You 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
版权声明:本文标题:How to call JavaScript function in VBA? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741959430a2407186.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论