Link to home
Start Free TrialLog in
Avatar of BryanC
BryanC

asked on

Launch new explorer window using VBscript

How do I launch a new explorer window and have it load a supplied file from an ASP page using VBscript?
Avatar of drittich
drittich

<html>
<head>
<title></title>
</head>
<body>
<script language="vbscript">
     Function DoIt()
          window.open("http://www.google.com/")
     End Function
</script>
<input type=button onClick="DoIt()" value="go">

</body>
</html>
of course you can use YourFile.asp rather than http://www.google.com
<SCRIPT LANGUAGE="VBScript">
Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")

With objIE
  .Visible = True
  .Navigate "your.asp?params"
end with  
</SCRIPT>
you can also just create a hyperlink with a target like

<a href="myaspPage.asp" target="_new">new window</a>

this method will not let you control size or appearance of the new window.
Avatar of BryanC

ASKER

Thanks for the quick response. I can get your examples working in a .html file but not a .ASP file. Do you know what I am missing?
Okay lets have some fun and throw in one more way.

<script languange="VBScript")

Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run("iexplore http://www.microsoft.com")

</script>
should work exactly the same.  show us the code that is not working from the asp page.
Avatar of BryanC

ASKER

My test file has one line.

<%window.open("http://www.google.com/")%>

I receive the following message.
   Microsoft VBScript runtime error '800a01a8'
   Object required: 'window'

What you are trying is client side script and can't be run from the server ( <% %> ) are dilimeters that tell the server to run the enclosed code.

Change it to
<script language="vbScript">
Window.Open("http://www.google.com/")
</script>
and place that in the head of your document to use this example.  Or as drittich as explained.
Avatar of BryanC

ASKER

I have a .ASP page that gets user input to generate some reports using server side scripting. Once the report is complete I wanted to launch a new explorer window to view the reports.

<%
...vb code
If (GenReport = "Pressed") Then
   ...vb code to generate report
   ??? want to launch new explorer window here ???
Else
   ...vb code
   %>
   <form action="<%= strURL %>" method="post">
   ... collect user input viw form
   <input type="submit" Name="GenReport" Value="Pressed"/>
   %>
End If
okay we need to change things up just a bit here.

<%
  If Request.Form("GenReport") = "Pressed" Then
   'code to generate report
  Else
   'vbcode
%>
  <form action="method="post" onSubmit="Javascript: Window.Open ("<%= strURL %>", "Window Title", "height=400, width=200">
  ... collect user input viw form
  <input type="submit" Name="GenReport" Value="Pressed"/>
<%
  End If
%>

Make sure that strURL is the same page as the one that contains this code.  In otherwords you are posting back to the same page.

You have to open the new window via client side and not server side.
ooops........the form should look like this
<form action="" method="post" onSubmit="Javascript: Window.Open ('<%= strURL %>', 'Window Title', 'height=400,
width=200');">
Avatar of Mark Franz
You can also do it with a HREF tag;

<a href="javascript:window.open('page.asp?name=fred&town=bedrock');">Click here Fred</a>

Of course you will have to change the URL values to vars;

<a href="javascript:window.open('page.asp?name=<%=rs("name")%>&town=<%=rs("town")%>');">Click here <%=rs("name")%></a>

Avatar of BryanC

ASKER

Is there a way to launch the new window without the user pressing a key?

I have a form that they will use to enter data and when they press the Generate button it will call itself. When it is called, if the Generate button was pressed it will generate the report using vbScript, I then want it to launch a new explorer window to view the report, and the current window should be ready for additional data entry.
Avatar of BryanC

ASKER

Forget the last comment. After looking at it again I understand what you said. I will try it out.

Thanks.
Avatar of BryanC

ASKER

I setup the following test and it displays "Generate the report and view it in this new window." in the same explorer window instead of launching a new one. Do you have any ideas? Thanks.

<%
Dim strURL
strURL    = Request.ServerVariables("URL")
GenReport = Request.Form("GenReport")
If (GenReport <> "Pressed") Then
   %>
   <form action="" method="post" onSubmit="Javascript: Window.Open ('<%= strURL %>',
    'Window Title', 'height=400, width=200');">
      I should collect user data here.
      <input type="submit" Name="GenReport" Value="Pressed" />
   </form>
   <%
Else
   %>    
   Generate the report and view it in this new window.
   <%
End If
%>
You can use the onMouseOver="window.open('page.asp')" event to launch a new window.
ASKER CERTIFIED SOLUTION
Avatar of BryanC
BryanC

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:
[PAQ with NO REFUND]

Please leave any comments here within the next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

hongjun
EE Cleanup Volunteer
Avatar of BryanC

ASKER

Please delete.