我将localhost的IIS自定义错误中的404错误设为转向localhost/b.asp(成功实现)。假设存在:localhost/a.htm(该页面中img src=a.gif),a.gif不存在。
执行操作:访问a.htm,页面正常打开,出现找不到图片的标记,b.asp得到访问请求。我的问题是:b.asp中的代码可以被执行,但执行打开其他页面的代码(如:window.open,redirect)就没有效果(单独打开b.asp成功)。请问有什么办法可以实现?

解决方案 »

  1.   

    这里是ASP.NET版>>>我的问题是:b.asp中的代码可以被执行,但执行打开其他页面的代码(如:window.open,>>>redirect)就没有效果(单独打开b.asp成功)。
    没看懂,你的编码是在哪里执行,b.asp里?把相关编码贴出来
      

  2.   

    b.asp的代码是:
    <%
    '成功执行的代码
    写入数据库操作
    .....'没有效果的代码
    response.write("<script>window.open('http://localhost/c.htm');</script>")%>
      

  3.   

    在IE里看看执行后的HTML源码是什么,里面有<script>window.open('http://localhost/c.htm');</script>么?还有,前面是否有response.Redirect语句?c.htm存在么?会不会是死循环?或者看看浏览器状态条里,有脚本错误么?response.write("<script language='javascript'>window.open('http://localhost/c.htm', '_blank')</" & "script>")
      

  4.   

    前面没有response.redirect语句,c.htm存在,不是死循环,也没有任何错误提示
    response.write("<script language='javascript'>window.open('http://localhost/c.htm', '_blank')</" & "script>")也不行。如果是localhost/xxx.htm(假设xxx.htm不存在),以上操作是没有问题的。就是我假设存在的那种情况通不过。
      

  5.   

    你没明白我的意思,假如c.htm不存在,假如你访问一个不存在的页面,譬如yyyy.asp,
    b.asp会执行,打开一个新的窗口,然后浏览器会试着打开c.htm,但因为c.htm不存
    在,b.asp又会执行,打开一个新的窗口,。在你的b.asp,就用下列语句,看是否会被执行,<%response.write("<script language='javascript'>window.open('http://localhost/c.
    htm', '_blank')</" & "script>")%>对了,你没有用堵popup的plugin,或者是XP SP2,自动把popup堵住了吧?
      

  6.   

    谢谢思归。
    没用防止弹出窗口的东西,单独执行b.asp可以打开窗口。语句可以被执行,只是没有效果。
      

  7.   

    在IE里访问你的页面,去菜单 视图->源码,将其存盘为b.html,然后放到你的服务器上,看可以怎么不?
      

  8.   

    b.asp在浏览器端的源码到底是什么?如果真是上面的javascript脚本,没理由不工作的在别的机器上试试你的服务器上的网页,也许是你的机器被人种了什么病毒了
      

  9.   

    b.asp在浏览器端的源码是<script language='javascript'>window.open('http://www.163.com')</script>(只有这句)
    然后存盘为b.html,再放到第一张帖子那个环境中。
    localhost/b.html和localhost/xxx.html(xxx.html不存在)  都测试成功。只有页面中缺少实际存在图片的图片标记的那种页面没有效果,但代码能够被执行。上了几个服务器都是这样,你那里可以测试通过吗?