实施搜索功能的最佳做法

时间:2018-07-10 10:30:16

标签: javascript php html search

我找到了一些问题/答案,但是它们都过时了,所以我想问一问,看看是否有一些新的做法/元。

我有一个正在使用的网页,atm是唯一的首页,并且它基于html,css和javascript构建。我之所以在Laravel中进行构建,是因为很快我将为表单,用户和其他一些文档实现一个数据库。

无论如何,我想要一个简单的搜索引擎(例如,只能搜索不同页面的搜索引擎)

因此,经过一番思考和挖掘,这是我目前正在研究的解决方案:

HTML:

<ul class="navbar-nav ml-1 mr-5">
    <form class="form-inline" id="procurahead">
      <input class="form-control espaco_procura" type="text" list="listhead" placeholder="Pesquisa" aria-label="Search" id="txtinputhead" autocomplete="off">
      <datalist id="listhead">
        <!-- THEMES -->
        <option value="foo">
        <option value="foo1">
        <option value="foo2">
        <option value="foo3">
        <option value="etc">
      </datalist>
      <button class="btn btn-outline-success btnprocura" type="submit"><i class="material-icons procura">search</i></button>
    </form>
  </ul>

JAVASCRIPT:

$('#procurahead').submit(function(event){

event.preventDefault();

var input1 = $('#txtinputhead').val();

if(input1 == "foo"){
window.location.href = 'http://localhost/laravel/l55/public/foo';
}
if(input1 == "foo1"){
window.location.href = 'http://localhost/laravel/l55/public/foo1';
}
if(input1 == "foo2"){
window.location.href = 'http://localhost/laravel/l55/public/foo2';
}
if(input1 == "foo3"){
window.location.href = 'http://localhost/laravel/l55/public/foo3';
} 
if(input1 == "etc"){
window.location.href = 'http://localhost/laravel/l55/public/etc';
} 
});

所以,这在我没有很多页面的情况下工作得很好,但是我认为,如果我扩展到所有网页,那么我会很长,而且似乎应该有一些更简单的方法它。

所以问题是:有没有更好/更简单的方法来实现呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

using javascript to detect whether the url exists before display in iframe中摘录下来作为代码介绍,您可以构建如下代码:

function urlExists(url) {
    var request;
    if (window.XMLHttpRequest) {
        request = new XMLHttpRequest();
    } else {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    request.open('GET', url, false);
    request.send();
    if (request.status === 404) {
        return false;
    } else {
        return true;
    }
}
$('#procurahead').submit(function (event) {
    event.preventDefault();
    var input1 = $('#txtinputhead').val();
    var url = 'http://localhost/laravel/l55/public/' + input1;
    if (urlExists(url)) {
        window.location.href = url;
    }
}

我希望这是您所需要的。问候。