帮助修复Javascript重定向问题

时间:2011-06-06 14:29:47

标签: javascript asp.net redirect

我有这个javascript,带我到西班牙语版本的网页。 但如果URL是www.domain.com/,没有filename.aspx(如index或default.aspx) 它不会带我去西班牙的网站。

// Index - Inicio 
if (url.indexOf("inicio") > 0)
  newURL = url.replace("~/es/inicio.aspx", "~/index.aspx");
    else 
  newURL = url.replace("~/index.aspx", "~/es/inicio.aspx");

然后如果我创建这样的另一个javascript,它就不会这样做,它只会将页面添加到url,在第一个url之后...

if (url.indexOf("inicio") > 0)
  newURL = url.replace("~/es/inicio.aspx", "/");
    else 
  newURL = url.replace("/", "~/es/inicio.aspx");

我该如何解决?

如果我点击ESPANOL,就不会把我带到/es/inicio.aspx页面。 因为我首先加载页面时的URL没有index.aspx它只是域

修正了这种情况如下: 创建default.aspx并在IIS文档管理中首先设置优先级。 而default.aspx里面有这个脚本。这样做对我来说,网站内部的javascript现在可以创造奇迹。 URL始终为URL / index.aspx

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Redirect("~/index.aspx", false);     
    }

</script>

2 个答案:

答案 0 :(得分:1)

首先,JavaScript URL重定向不支持Tild Sign

其次,为什么不使用Window.Location = "URL";

答案 1 :(得分:0)

您在这里打电话给“替换()”:

  newURL = url.replace("/", "~/es/inicio.aspx");

表示用替换字符串替换URL中的第一个“/”字符。如果URL包含的字符多于斜杠(似乎很可能),那么它们将在替换后保留。我们不知道您的整体网址方案是什么,但如果您只想替换原始网址,则只需执行以下操作:

  newURL = "~/es/inicio.aspx";

并完全免除“replace()”。