我试了一下,在打开空窗体后再替换location.href的时候,不能加http://,只能认为是本机的地址内的网页。
如果在打开的时候就指明其中的location.href则没问题。
在网页链接中应用也没有问题。可以在java脚本里就把base.href读出来,打开该地址的窗口就没有问题。
<html>
<HEAD>
<base href="http://192.168.1.113/">
</head>
<TITLE>欢迎</TITLE>
<script language="JavaScript">
<!--
var oBase = document.all.tags('BASE');
var tmpstr=String(oBase[0].href)+"guanqing.htm";
var popup = window.open(tmpstr, 'popupnav', 'width=300,height=200,resizable=0,scrollbars=auto');
-->
</script>
<body>
hihi
</body>
</html>

解决方案 »

  1.   

    在脚本里把base的值取出来,就可以使用了。我想是因为在你打开一个空窗体之后,系统默认打开的是本机的网页,此时替换location就不能加http://头。
      

  2.   

    所以,如果在打开新窗口的时候强制加一个其它网站的地址,如"http://125.123.2.2",在打开后强制把它的location.href替换成你想要的就可以了。
    <html>
    <HEAD>
    <base href="http://192.168.1.113/">
    </head>
    <TITLE>欢迎</TITLE>
    <script language="JavaScript">
    <!--
    var popup = window.open("http://125.234.23.2", 'popupnav', 'width=300,height=200,resizable=0,scrollbars=auto');
    var oBase = document.all.tags('BASE');
    var tmpstr=String(oBase[0].href)+"guanqing.htm";
    popup.location.href=tmpstr  //强制改变location,这样就可以了。
    -->
    </script>
    <body>
    hihi
    </body>
    </html>
      

  3.   

    很谢谢您的回复,但是我的问题是如何使<base>tag在javascript块中起作用。
    就象在html中用的一样。
    "a.html"就表示oBase[0].href+"a.html"因为我要做一个HTML的转换,把所有的link转换成一个cgi的参数,HTML中的Link没问题,但是我不想又要做javascript的转换,而且javascript中很难判断一个变量是否一个Link。所以我才用<base>tag这个办法,<base>tag在HTML中用的很好,但是在javascript中就不行。有没有一个设置使<base>tag在javascript块中起作用呢?或者是类似的解决办法呢?
      

  4.   

    在脚本里是不行的,只能把<base>的值取出来再说了。
      

  5.   

    <base>的植读出来不难,但是很难转换javascript中所包含的Link了。