0

我们花了很多时间为我们的网站使用搜索引擎优化,如果移动用户使用其中一个搜索引擎,我们正试图将移动用户重定向到反映正常网页的移动设计网页它们设置在子文件夹 /mobile/ 中。

在主要的非移动页面上,变量被捕获:

<% ThisPage = Request.ServerVariables("URL") %>
<% ThisVAR = "?" & Request.Querystring %>

这些变量转到包含文件以检查用户是否是移动用户,如果是,则重定向到移动用户可能正在搜索的页面,该页面以我们网站的移动格式存在。如果用户在移动设备上并且我们没有他们正在搜索的页面的移动版本,它应该重定向到移动文件夹根目录。

<script type= "text/javascript">
if (screen.width <= 481)
{
    if (ThisPage = "/faqs.asp") { document.location = "../mobile/menu_faq.asp" }
    else {

    if (ThisPage = "/search.asp") { document.location = "../mobile/mobile_search.asp" }
else {

    if (ThisPage = "/mte_contacts.asp") { document.location = "../mobile/menu_contacts.asp" }
else {

    if (ThisPage = "/mte_history.asp") { document.location = "../mobile/menu_history.asp" }
    else {

    if (ThisPage = "/mte_locations.asp") { document.location = "../mobile/menu_locations.asp" }
else {

    if (ThisPage = "/mte_shipping.asp") { document.location = "../mobile/menu_shipping.asp" }
else {

    if (ThisPage = "/shop_discontinued.asp") { document.location = "../mobile/mobile_discontinued.asp" }
else {

    if (ThisPage = "/shop_category.asp") { document.location = "../mobile/mobile_category.asp" + ThisVAR }
else {

    if (ThisPage = "/shop_commodity.asp") { document.location = "../mobile/mobile_commodity.asp" + ThisVAR }

else { document.location = "../mobile/" }
}
}
}
}
}
}
}
}
}
</script>

我一直在搜索我遇到的 javascript if..else 问题的解决方案,但我找不到任何可以纠正我的代码中的语法错误的东西。我让重定向工作,但它没有转到正确的移动页面,我无法获得正确的逻辑。任何帮助,将不胜感激。目前,在我的移动设备上进行测试以转到 /mnt_history.asp 文件,但它重定向到 /mobile/menu_faq.asp

4

1 回答 1

1

与其使用一堆 if-else,查找表可能是更好的方法。在一个地方查看所有映射更加紧凑和容易。

var mobileMapper = {
    "/faqs.asp"              : "../mobile/menu_faq.asp",
    "/search.asp"            : "../mobile/mobile_search.asp",
    "/mte_contacts.asp"      : "../mobile/menu_contacts.asp",
    "/mte_history.asp"       : "../mobile/menu_history.asp",
    "/mte_locations.asp"     : "../mobile/menu_locations.asp",
    "/mte_shipping.asp"      : "../mobile/menu_shipping.asp",
    "/shop_discontinued.asp" : "../mobile/mobile_discontinued.asp",
    "/shop_category.asp"     : "../mobile/mobile_category.asp" + ThisVAR ,
    "/shop_commodity.asp"    : "../mobile/mobile_commodity.asp" + ThisVAR 
};

if (screen.width <= 481) {
    document.location = mobilMapper[ThisPage] || "../mobile/";
}
于 2013-05-23T16:47:45.270 回答