使用自定义CSS表单的Google自定义搜索,而不是向results.html

时间:2017-11-28 14:53:22

标签: javascript html

在HTML和CSS方面,我认为自己是新手。我已经做了一些HTML和CSS,开启和关闭了好几年,但我从来没有详细介绍过。幸运的是,我一直都能通过研究找到答案。

我的问题如下:我正在建立一个网页。它目前托管在我的本地计算机上,而不是在服务器上。这只是我在一个地方的所有重要部分。我有一个定期使用的程序,他们有一个知识库网站。他们的搜索引擎很糟糕。我想在我的网页上找到一个搜索表单,它允许我搜索他们的KB,而不必使用他们的内置搜索。

我去谷歌,创建了GCSE。我实现了有限的外观和感觉元素,我很好,搜索结果与我的互联网主题不匹配。

然而,表单是自定义的,我希望它与我的主题相匹配,所以我这样做了:

的index.html

<html>
<body>
    <form id="cse-search-box" class="search" title="CSE Search"
    action="results.html">
    <input type="text" name="q" size="" />
    <input type="submit" name="sa" value="go" />
    </form>
 </body>   
</html>

这里是Javascript,这是你从生成器获得的。

<script> //This bit of code goes on your index page.
(function() {
var cx = 'abc:123'; //sub your customID here
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
           '//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(gcse, s);
})();
</script>

results.html

<script>// This bit of code goes on your results page. 
(function() {
var cx = 'abc:123'; //sub your CustomSearchID here
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:searchresults-only URL="_self"></gcse:searchresults-only> 

我能够将一个可以修改并挂钩到他们的搜索和覆盖的CSS主题拼凑在一起,我在here上发现了另一个线程,它允许我在很大程度上弄清楚主题元素。

我遇到的问题是让搜索结果显示在新页面中。不是由谷歌主持,而是在results.html。我不够了解它是什么,我错过了。代码,如果它全部在同一个文件中,执行完美,但它显示结果,我有GCSE结果标记,我不希望它在我的索引页面上,就像我说的,我希望它在我的结果页。

所以,我的问题是,从本地计算机运行文件是否存在限制,这会阻止它像我预期的那样运行。

至于我的目录是如何设置的:我有CSS,JS的文件夹,然后.html文件位于我的项目文件夹的根目录中。细分:项目&gt; index.html,results.html,CSS(文件夹),JS(文件夹),IMG(文件夹)。

我注意到如果我想运行一个jquery元素(Simpleweather.js),我必须将HTML和Script全部放在一个文件中,我可以将CSS链接进去。但是我没有三个文件,html作为基础,CSS然后JS被带入HTML。它只是行不通。

我相信这回答了我上面的问题,我只是在寻求确认。如果我的白话不是最好的,我道歉。感谢您提供的任何建议。

我确实搜索了StackOverflow,并且我已阅读了几篇帖子,但其中一些已经过时了。我搜索了谷歌API,但它有点可怕,并没有真正为我回答任何问题。

对于任何有兴趣的人,我在不太可能发生的事件中解决了这个问题。我再次咨询了API,发现了一些我一直缺失的东西,因为脚本是两部分。结果页面有自己的脚本,搜索功能本身也有自己的脚本。他们一起工作,我的表单使用q将查询传递给脚本。金。

我在自己的模拟页面中运行脚本,将其与HTML的其余部分隔离开来,发现它功能正常。我无法想到为什么它在我自己的代码中不起作用,DOM在我检查时没有丢失任何错误。

然后我开始评论一些代码,直到我弄清楚它是什么。

我删除了一个method=GET的元素,突然一切都很好。一切正常。我几乎感到难过,我浪费了每个人的时间,但希望这将有助于未来的其他人,我会更新我的代码框,以正确反映需要做的事情,以便将来可以使用。

0 个答案:

没有答案