javascript - 谷歌自定义搜索确定何时加载脚本

标签 javascript jquery google-custom-search

我正在以最简单的形式使用谷歌自定义搜索。我刚刚添加了生成的脚本和标签 <gcse:search></gcse:search>在一个 View 上。一切都按预期工作,但我希望能够自己在文本框中设置搜索词,然后触发提交。我不知道如何确定何时加载下面的脚本。有没有办法修改脚本以便我可以使用 jQuery then()功能?

(function () {
        var cx = 'xxxxxxxxxxxxxxxxxx:xxxxxxxx';
        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 type="text/javascript" src="https://www.google.se/jsapi"></script>

<script type="text/javascript">
    google.load("search", "1", { language: 'sv', style: google.loader.themes.MINIMALIST });
    google.setOnLoadCallback(function () {
        var ctrl = new google.search.CustomSearchControl('xxxxxxxxxxxxxxxxxx:xxxxxxxx');
        ctrl.draw('cse');

        // you can do stuff here, like trigger a search as shown  below !!        

        ctrl.execute('<%=Request.QueryString["text"] %>');
    }, true);
</script>

最佳答案

我为此使用了一个解决方法。来自谷歌的脚本正在创建一个带有 src 属性的 iframe,其中包含 &cx= 代码和要搜索的术语 (&q=):

http://www.google.com/cse?cx=xxxxxxxxxxxxx%3Ac8u_ywvcjnw&ie=UTF-8&q=term+to+search&sa=Search& ....

使用 jquery,您可以创建一个 iframe,其属性 src 设置为上述链接。

关于javascript - 谷歌自定义搜索确定何时加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193213/

相关文章:

javascript - Vue-如何观察对象数组中的属性

javascript - 使用 Javascript 在 MouseOver 上的其他元素之上显示 Html 元素

javascript - 从序列化函数中获取 HTML 的值

javascript - 使用 Google CSE v2 时是否可以注册搜索结果回调?

javascript - 如何使用 javascript 或 jquery 从键盘触发文件浏览器?

javascript - knockout 复杂变量不绑定(bind)

javascript - 如何制作将从 MySQL 数据库中删除表行的 JavaScript 函数

javascript - 从 PHP 填充选择下拉列表

css - Google CSE 边框不会在 IE7、8 和 9 中隐藏

google-api-java-client - 如何开始使用 Google 自定义搜索 API?