Event fired by "alert"

A

Alistair Saldanha

I'm looking for the event that is fired by Internet Explorer to an "alert":

<SCRIPT>
Alert("You already have a session open")
</SCRIPT>

The event would be webBrowser.Document.????

Much appreciate any help you can give me.
Thanks,
Alistair Saldanha
 
L

Lee

Danny said:
Ahhhhhh, what!?

That's a rather useless post, wasting the time of everyone who
reads it. You could have asked clarifying questions, or pointed
out specific misconceptions. In any case, I would hope that you
would also quote enough of the post that you were responding to
to allow others to know what you're questioning.
 
A

Alistair Saldanha

I am the person who made the original post. I didn't want to make my message
too long but it may have been too brief. I'm using Visual Basic to control a
WebBrowser control on a Visual Basic form through automation. For instance,
if someone clicks a button named Xbutton in Internet Explorer the Visual
Basic code would be:

WebBrowser.Document.All("Xbutton").OnClick = Class1

This will run the default method in Class1 when the user clicks Xbutton.

I'm looking for the same pathway for an alert:

<SCRIPT>
Alert("You already have a session open")
</SCRIPT>

I'm assuming the pathway would be something along the lines of:

WebBrowser.Document.All("???") = Class2

Thanks,
Alistair
 
V

VK

Alistair said:
I am the person who made the original post. I didn't want to make my message
too long but it may have been too brief. I'm using Visual Basic to control a
WebBrowser control on a Visual Basic form through automation. For instance,
if someone clicks a button named Xbutton in Internet Explorer the Visual
Basic code would be:

WebBrowser.Document.All("Xbutton").OnClick = Class1

This will run the default method in Class1 when the user clicks Xbutton.

I'm looking for the same pathway for an alert:

<SCRIPT>
Alert("You already have a session open")
</SCRIPT>

I'm assuming the pathway would be something along the lines of:

WebBrowser.Document.All("???") = Class2

Thanks,
Alistair

window.alert() is a method of the window object. It is not an event and
it doesn't fire any particular event. As on alert display focus goes to
the alert window, the parent window generates unload event. But it is
useless because unload may be caused by too many reasons.

Also window.alert is what we would call "final class" in other
languages. Thus it doesn't allow to change it's constructor to add
extra property/methods.

Alert doesn't appear automatically, but always has to be explicetly
called in the code. So what does prevent you from:

function foo() {
alert(message);
otherFunction();
}

?
 
C

Christopher J. Hahn

VK said:
window.alert() is a method of the window object. It is not an event and
it doesn't fire any particular event. As on alert display focus goes to
the alert window, the parent window generates unload event. But it is
useless because unload may be caused by too many reasons.

Also window.alert is what we would call "final class" in other
languages. Thus it doesn't allow to change it's constructor to add
extra property/methods.

Alert doesn't appear automatically, but always has to be explicetly
called in the code. So what does prevent you from:

function foo() {
alert(message);
otherFunction();
}

?

How is alert a class? Final or otherwise? It's no more a class than,
say, setsockopt, or document.write, or print or echo.

Also, I think you may have gotten blur and unload confused. unload is
fired only when the current document is unloaded, i.e. when navigating
away from the document, or when closing the browser window. alert
causes the window (and children) to lose focus, causing a blur event,
not an unload.

Hope that clarifies it a bit.
 
C

Csaba Gabor

Alistair said:
I am the person who made the original post. I didn't want to make my message
too long but it may have been too brief. I'm using Visual Basic to control a
WebBrowser control on a Visual Basic form through automation. For instance,

As I understand it, within your VB code you want to be able to react to
an alert message being popped up, presumably by sending a keystroke to
it to dismiss it (or maybe even choose between options or enter input).
I suspect it would be too difficult to guess that the alert is coming
up and then spew a key to dismiss it.

This question is quite interesting, however, and I think it is better
addressed in the newsgroup: microsoft.public.vb.winapi
In particular, I think the call you are looking for is the windows API
SetWindowsHookEx with either WH_CBT (more probably) or WH_SHELL,
probably requiring a DLL. The class of the alert/confirm/prompt
(common dialog) windows are all "#32770" and alert has a single OK
button is a subwindow (class "Button"), while the other two each have
an OK and Cancel button, but the prompt window also has an Edit class
subwindow.

You might do a google search on: "32770" SetWindowsHookEx
Here's a useful page with some ideas:
http://groups-beta.google.com/group...discussion/browse_frm/thread/f79d4612fdaec9f/

I'll look forward to seeing more on this topic,
Csaba Gabor from Vienna
 
C

Christopher J. Hahn

Csaba said:
As I understand it, within your VB code you want to be able to react to
an alert message being popped up, presumably by sending a keystroke to
it to dismiss it (or maybe even choose between options or enter input).
I suspect it would be too difficult to guess that the alert is coming
up and then spew a key to dismiss it.

Just a thought-- I don't know whether or not this is even possible from
a VB app, but it would seem easiest to replace the window.alert method
with a no-op.

window.alert = function () { };

Don't know if you can do that, but if you can, do.
 
C

Csaba Gabor

Christopher said:
Just a thought-- I don't know whether or not this is even possible from
a VB app, but it would seem easiest to replace the window.alert method
with a no-op.

window.alert = function () { };

Don't know if you can do that, but if you can, do.

Wow, Great idea!
<body onload="revamp()">
<script type='text/javascript'>
function revamp() {
// revamp the default alert function
var oldAlert = window.alert;
window.alert = function(alertMsg) {
window.status = alertMsg;
}

// proof of concept
alert("Hi mom");
oldAlert ("Hi dad");
// alert(""); // reset the status bar
}
</script>
</body>

And yes, you can do this from VB with:
IE.document.parentWindow.execScript _
"window.alert=function(alertMsg) {window.status=alertMsg;}"

Side note. If you're going to be creating variables off IE's
document that you can access from VB, I recommend doing
something to create it first like:
IE.document.parentWindow.execScript "window.myVar=0"
which will allocate the variable for use

Csaba Gabor from Vienna
PS. I didn't test this on the VB side, but I do it in other situations
 
A

Alistair Saldanha

Csaba,

Thank you so much for your post.

I cannot change the code in the WebBrowser, I am helping the end user react
to the WebBrowser using Visual Basic automation. The Visual Basic Automation
automatically enters the account number and other details so the end user
doesn't have to enter them manually. What's killing the VB automation are
the consant messages that pop up saying "Another session is running", which
is actually a bug in the WebBrowser coding, but it stops the VB automation
cold. So I'm hoping to do something to sidestep the alerts.

Alistair
 
C

Christopher J. Hahn

Alistair said:
Csaba,

Thank you so much for your post.

I cannot change the code in the WebBrowser, I am helping the end user react
to the WebBrowser using Visual Basic automation. The Visual Basic Automation
automatically enters the account number and other details so the end user
doesn't have to enter them manually. What's killing the VB automation are
the consant messages that pop up saying "Another session is running", which
is actually a bug in the WebBrowser coding, but it stops the VB automation
cold. So I'm hoping to do something to sidestep the alerts.

Alistair
From your description, it sounds like you're not dealing with
JavaScript alerts but WebBrowser MsgBoxes. We either need to see the JS
code of the page (everything in <script> tags) to determine for sure,
or if you already know that it's not a JS-alert(), then you're really
asking in the wrong newsgroup.

If it's not JS-related, a VB newsgroup or VB-WebBrowser newsgroup would
serve you best.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,680
Members
48,796
Latest member
Greg L.

Latest Threads

Top