Javascript显示表格会导致iframe

时间:2016-07-25 11:36:43

标签: javascript jquery html ajax iframe

我的网页上有简单的表单,可以将搜索变量传递给外部页面。该功能按预期工作,我想更改结果显示的方式/位置

我想在搜索框的同一页上显示搜索结果,即我不想打开新窗口或标签。理想情况下,我想在隐藏的<div>中显示结果并完全远离iframe,但我认为这不可能吗?

两个页面(搜索结果)位于同一个域中,但我只能编辑搜索页面代码。< / p>

我需要更改当前代码才能使其正常工作。如果有更好的方法可以做到这一点,我会接受建议,比如使用AJAX等。这对JS来说很新,所以非常感谢所有的帮助。

成功搜索“sport”一词后,结果页网址采用以下格式;

http://example.com//search/C__Ssport__Orightresult__U

到目前为止我的代码如下;

HTML

<form action="" onsubmit="return search()">
    <input id="SearchInput" placeholder=" Search..." type="text">
    <input type="hidden" id="Base" value="http://example.com/search/">
    <input type="submit" value="Submit">
</form>

JS

<script type="text/javascript">
   function search(){
        var BaseURLInput, BaseURL, searchInput, searchString, locationHref, charRegExString, base64Regex;
        var base64_encoding_map = {"=":"PQ==", "/": "Lw==", "\\":"XA==", "?":"Pw=="};
        var escapeRegExp = function(string) {
            return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
        }
        BaseURLInput = document.getElementById("Base");
        searchInput = document.getElementById("SearchInput");

        if (searchInput && BaseURLInput) {
            BaseURL= BaseURLInput.value;
            searchString = searchInput.value;
            for (var specialChar in base64_encoding_map) {
                charRegExString = escapeRegExp(specialChar);
                base64Regex = new RegExp(charRegExString, "g");
                searchString = searchString.replace(base64Regex, base64_encoding_map[specialChar])
            }
            searchString = encodeURIComponent(searchString);
            locationHref = BaseURL+ "C__S" + searchString + "__Orightresult__U";
            window.open(locationHref,'_blank' );
        }
        return false;
    }
</script>

1 个答案:

答案 0 :(得分:0)

而不是打开结果页面,您可以进行AJAX调用。

在这个答案中,你有一个如何做到这一点的好例子: How to make an AJAX call without jQuery?

我们的想法是使用AJAX调用调用结果页面,并将返回的结果直接嵌入到您首选的html容器中。