So rufen Sie die JavaScript-Funktion in VBA?
Muss ich mir von pass-IE-bestätigen Sie " OK " /"Abbrechen" pop-up-Nachricht. Ich habe ein problem mit einer JavaScript-Funktion in meinem VBA-Skript. Meine 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 manueller Prozess, wenn ich auf die Schaltfläche speichern klicken, wird die Seite pop-up bestätigen-message-box, und mein makro wird beendet, wenn das pop-up erscheint, es sei denn, es wurde geklickt.
Hier ist der code, den ich versucht habe, zu klicken Sie auf die Schaltfläche speichern,
Set ElementNameV = HTMLDoc.getElementsByName("cmdsave")
ElementNameV(0).click
Ich auch versucht, mit Hilfe removeattribute
und setattribute
mit denen sich die pop-up-Meldung verschwunden aber es ist nicht die Datei hochladen, weil ich auf die Taste 'OK' bestätigen der message-box, die erscheint bei Klick auf den speichern-button starten Sie die Datei hochladen.
ElementNameV(0).removeAttribute ("onclick")
ElementNameV(0).setAttribute "onclick", "return true"
ElementNameV(0).click
Ich habe versucht mit der JavaScript-Funktion mit unter-Skript, aber es zeigt auch die Bestätigung pop-up-message-box:
Call HTMLDoc.parentWindow.execScript("submitbutton_click()")
- Darf ich Fragen, warum Sie nicht mit den nativen VBA - /VBScript-Methoden?
- was bedeuten die durch die native VBA-Methoden? können Sie uns einige Vorschläge dazu, wie ich die Lage zu kontrollieren, die pop-up-Bestätigung-Nachricht, wenn es erscheint? da meine codes aufhören zu laufen, wenn ich auf die Schaltfläche "speichern" und das pop-up erscheint
- Werfen Sie einen Blick auf diese Seite... das ist ein VBScript OK/Cancel-message-box: stackoverflow.com/questions/3062401/... finden Sie ausgewählte Antwort an der Spitze.
- Dies kann oder kann nicht nützlich sein, je nachdem, was du tust.
- das ist nicht das, was ich Suche, ich brauche Sie nicht erstellen Sie ein pop-up-Nachricht. was ich brauche, ist zu behandeln, die pop-up-Nachricht, die erscheint, wenn ich klicken Sie auf die Schaltfläche "speichern" aus einer web-Seite.
- Hmm... Dann entschuldige ich mich. Ich denke, ich bin nicht wirklich die Frage zu verstehen. Dieser Teil hier "Im manuellen Prozess, wenn ich auf die Schaltfläche speichern klicken, wird die Seite pop-up bestätigen-message-box, und mein makro wird beendet, wenn das pop-up erscheint, es sei denn, es wurde geklickt." Das ist by design. Versuchen Sie zu vermeiden?
- Ich versuchte zu vermeiden, die pop-up mit dem removeattribute und setattribute. das pop-up ist Weg, aber das problem ist die Datei nicht hochladen, das ist, weil ich brauchen, um klicken Sie auf die " OK " im pop-up-Nachricht, um die Datei hochladen. Ich glaube nicht, dass die Vermeidung der pop-up-Nachricht bestätigen helfen. Ich glaube, ich brauche, um es zu kontrollieren, wenn es erscheint. aber das problem ist mein makro nicht mehr funktionieren, wenn es erscheint. Ich denke, ich muss an die Ereignisse, aber ich fürchte ich weiß nicht, wie.
- Ok, gut, ich hoffe, jemand anderes wird das Glockenspiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie in der Lage, das überschreiben der
ConfirmSave
Funktion mit ein, die einfach true zurück:oder
oder sogar
Ausgeführt, dass vor dem klicken auf die Schaltfläche.
Getestet und funktioniert im IE11
So, die ich gelesen habe deine Frage ein paar mal jetzt, und ich denke, dass zu erreichen, was Sie wollen zu tun, sind Sie gehen zu müssen, um völlig verändern Ihre Herangehensweise an das problem. Sie Lesen müssen, bis auf Javascript-Concurency, Javascript Web worker, und die Javascript-Event-Schleife.
Nur werfen diese Begriffe in Google und finden Sie viele tolle Ressourcen, um dies zu erfahren.
Standardmäßig Javascript ist eine single-threaded-Sprache und es halte, während Sie auf Ereignisse warten, um Ihre Aktivitäten abschließen. Was Sie scheinen zu suchen, basierend auf, wie ich lese deine Frage ist eine Möglichkeit für Javascript, um zu halten, die Durchführung von Aktionen während einer Benutzer-Eingabeaufforderung wird angezeigt.
Zwar ist dies keine Bestätigung, ich werde werfen dieser link, um Ihnen den Einstieg.