如何在客户端浏览器打开一个新的IE窗口,为何窗口总是在服务器端打开

orieni 2006-10-18 09:38:29
如何在客户端浏览器打开一个新的IE窗口,现在的问题是窗口总是在服务器端打开.

在DEFAULT.ASPX.CS文件里尝试用以下方法
protected void btnsubmit_Click(object sender, EventArgs e)
{
SHDocVw.WebBrowser wb = new SHDocVw.WebBrowser();
...
wb.Navigate2("http://www.google.com", ref objnull,ref objnull, ref objnull, ref objnull);
}

DEFAULT.ASPX文件内容包含以下调用
<asp:Button ID="ButtonLink0" runat="server" OnClick="btnsubmit_Click" />
...全文
749 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2006-10-23
  • 打赏
  • 举报
回复
this is a security setting limitation. Adjust your Internet Explorer security option, or wirte your own browser.
scow 2006-10-23
  • 打赏
  • 举报
回复
我看出来了,是打开垃圾网页的代码
orieni 2006-10-21
  • 打赏
  • 举报
回复
用脚本如何访问打开的其他网址的内容呢,
win.open() 打开一个窗口,无法获取其内容,提示拒绝访问.JAVASCRIPT对跨域引用有权限问题吧,
用loadPolicyFile在网页上怎么实现?
还望多多关照,:)
---------------------------------
 function openwin()
  {
   OpenWindow=window.open("http://google.com/", "newwin", "height=250, width=100%,toolbar=yes ,scrollbars="+scroll+",menubar=no");
  alert(OpenWindow.document.body.innerHTML);//拒绝访问
jedliu 2006-10-19
  • 打赏
  • 举报
回复
值得研究研究!
orieni 2006-10-19
  • 打赏
  • 举报
回复
用下列方法可以得到当前系统进程.有人可以告诉我如何转为 SHDocVw接口吗,谢谢
System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("iexplore");
foreach (SHDocVw.InternetExplorer MyIE in ps)//???!!!!
{
.....
}
orieni 2006-10-19
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
SHDocVw.IShellWindows sw = new SHDocVw.ShellWindows();//改行出错
...................
}
出错代码就一样.
SHDocVw.IShellWindows 改为 SHDocVw.ShellBrowserWindow或 SHDocVw.ShellWindows或SHDocVw.ShellWindowsClass 都会报内存不够,
但若SHDocVw.WebBrowserClass其他类使用就没有问题,实在找不到还有没有其他方法可以列举当前系统的进程?
jedliu 2006-10-19
  • 打赏
  • 举报
回复
要及时释放内存!
orieni 2006-10-19
  • 打赏
  • 举报
回复
jedliu:
在运行该方法时,W3WP.EXE内存一直在32M以下,并没有出现大起大落的现象,让人很困惑
jedliu 2006-10-19
  • 打赏
  • 举报
回复
OutOfMemoryException 使用值为 0x8007000E 的 HRESULT COR_E_OUTOFMEMORY。
显然出现这个问题是因为没有足够的内存供内部使用或分配给新托管对象时。所以你要检查你的程序,使用 64KB 或更多内存的大型方法的地方就是可能出错的地方。
orieni 2006-10-19
  • 打赏
  • 举报
回复
谢谢大家的回答
To:avisnet(第十维度)
谢谢你的建议,不过一样有提示8007000e的错误,看起来是该操作损耗内存太大,进程被回收了,可是我在应用程序池里改变一些数值反应不大,不知哪位仁兄有过经验,还望多多指教!

检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 8007000e。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.OutOfMemoryException: 检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 8007000e。
源错误:
行 655: SHDocVw.IShellWindows sw = new SHDocVw.ShellWindows();
行 656: for (int i = 0; i < sw.Count - 1; i++)
行 657: {


To:aafshzj 改成脚本动作太大,太麻烦了,俺还是找省事的方法吧,;)
TO:net_lover(【孟子E章】) 用Javascript 打开没用
孟子E章 2006-10-19
  • 打赏
  • 举报
回复
protected void btnsubmit_Click(object sender, EventArgs e)
{
Response.Write("<script>window.open('http://www.google.com','_blank')</script>");
}
aafshzj 2006-10-19
  • 打赏
  • 举报
回复
用脚本啊,兄弟!难道还要再来问一编?
avisnet 2006-10-19
  • 打赏
  • 举报
回复
枚举浏览器窗口:

protected void Page_Load(object sender, EventArgs e)
{
SHDocVw.IShellWindows sw = new SHDocVw.ShellWindows();
for(int i = 0; i < sw.Count - 1; i++)
{
SHDocVw.IWebBrowser2 browser = sw.Item(i) as SHDocVw.IWebBrowser2;
if(browser != null)
{
Response.Write(browser.LocationName + ":");
Response.Write(browser.LocationURL);
Response.Write("<br />");
}
}
}
orieni 2006-10-19
  • 打赏
  • 举报
回复
本机在DEBUG模式下是可以运行,但通过网络访问就不行了,你试试通过IP地址来访问虚拟目录下的网页
avisnet 2006-10-19
  • 打赏
  • 举报
回复
我在代码在我的机器上运行过,没什么问题啊
orieni 2006-10-18
  • 打赏
  • 举报
回复

Hi,
I have writen a code to take snapshot of Internet Explorer. The code
works fine when run in the debug mode. But once I publish the site I get the
following error for:

Retrieving the COM class factory for component with CLSID
{9BA05972-F6A8-11CF-A442-00A0C90A8F39} failed due to the following error:
8007000e.

The statement the error is shown for is:
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();

Any help would be really appreciated
Thanks
orieni 2006-10-18
  • 打赏
  • 举报
回复
救命,各路英雄!
小弟在VS2005运行网站很正常(http://localhost:3535/WebSite1/),但用IP地址访问该页面(http://192.168.1.101:3035/Default.aspx)就出现以下错误,还望各位大侠不吝赐教!谢谢!

“/football”应用程序中的服务器错误。
--------------------------------------------------------------------------------

检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 8007000e。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.OutOfMemoryException: 检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 8007000e。

源错误:


行 673: mshtml.IHTMLDocument2 MyDoc;
行 674: //SHDocVw.ShellBrowserWindowClass shellWindows = new SHDocVw.ShellBrowserWindowClass();//ShellWindowsClass
行 675: SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();//ShellWindowsClass
行 676: foreach (SHDocVw.InternetExplorer MyIE in shellWindows)
行 677: {
orieni 2006-10-18
  • 打赏
  • 举报
回复
window.open打开,后台无法得到 WebBrowser.document
我想得到一个打开的IE页面的document属性,用webbrowser控件或框架页或列举当前所有IE窗口....方法不一,能完成就好!
avisnet 2006-10-18
  • 打赏
  • 举报
回复
protected void btnsubmit_Click(object sender, EventArgs e)
{
SHDocVw.WebBrowser wb = new SHDocVw.WebBrowser();
...
wb.Navigate2("http://www.google.com", ref objnull,ref objnull, ref objnull, ref objnull);
}

----

这是在服务器端运行的代码,肯定是在服务器上打开的。

想要在客户端打开IE窗口, 为什么不用window.open呢?

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧