如果hash只包含1个字符串,则忽略其他if语句

时间:2017-05-12 00:38:58

标签: javascript jquery arrays if-statement hash

所以我正在努力更新我的一个编码操场并且遇到一些麻烦。

基本上,如果用户ONLY具有"结果"哈希中的字符串就像这样......

  

testhash.html#d81441bc3488494beef1ff548bbff6c2?结果

希望它显示结果('only result was "result")而不是其他内容,但如果用户在字符串中有编辑器,我希望它能够拆分并显示编辑器或者这个例子文本......

  

testhash.html#d81441bc3488494beef1ff548bbff6c2?MD,HTML,CSS,JS,结果

但是,如果它只显示散列中的结果字符串以忽略其他if语句,我很难弄清楚如何过滤它。

如果只显示"结果"我该如何过滤该功能?哈希中的字符串是否忽略其他if语句并仅显示结果?

var url = window.location.hash,
    testhash = "#d81441bc3488494beef1ff548bbff6c2",
    arr = ["md", "html", "css", "js", "edit", "dark", "transparent"];

$(document).ready(function(e) {
  if (!url) {
      window.location.href = location.href + testhash + "?md,html,css,js,result";
  } else {
    // Show Editors If URL Contains Them
    if (url.indexOf("?") > -1) {
      if (url.indexOf("result") > -1) {
        if ($.inArray("result", arr) > -1) {
          $(document.body).append('only result was "result" 1');
          return false;
        }

        if (url.indexOf("md") > -1) {
          $(document.body).append('md');
        }
        if (url.indexOf("html") > -1) {
          $(document.body).append('html');
        }
        if (url.indexOf("css") > -1) {
          $(document.body).append('css');
        }
        if (url.indexOf("js") > -1) {
          $(document.body).append('js');
        }
        if (url.indexOf("dark") > -1) {
          $(document.body).append('dark');
        }
        if (url.indexOf("transparent") > -1) {
          $(document.body).append('transparent');
        }

        $(document.body).append('result');
      }
    }
  }
});

1 个答案:

答案 0 :(得分:1)

我认为你想要的不是window.location.hash。相反,你想要的是window.location.search

给定网址:

  

testhash.html#d81441bc3488494beef1ff548bbff6c2?MD,HTML,CSS,JS,结果

当您使用window.location.search时,结果会得到?md,html,css,js,result。那就是

var url = window.location.search;
$(document).ready(function(e) {
  if (!url) {
      //do your code
  } 
  else 
  {
     if (url.length > 1)
     {
         var search = url.substr(1); // remove char ?
         if (search == 'result')  // means that the parameter is ONLY result
         {
              $(document.body).append('only result was "result"');
              return false;
         }
         else //other strings WITH or WITHOUT the "result"
         {
              if (search.indexOf("result") > -1) 
              { $(document.body).append('result'); }

              if (search.indexOf("md") > -1) 
              { $(document.body).append('md'); }

               // and the rest
         }
      }
    }
});

演示:https://jsfiddle.net/jxom6zhp/1/