Dynamic 使用Jquery.Load()动态加载时,Google CSE没有正确加载

Dynamic 使用Jquery.Load()动态加载时,Google CSE没有正确加载,dynamic,jquery-load,google-custom-search,Dynamic,Jquery Load,Google Custom Search,以下是我目前正在工作的网站: 多亏了SO社区先前的帮助,这些按钮将主“内容”div动态更改为按钮指向的任何链接。除了右上角的“搜索”按钮外,它们都工作得很好 我们正在使用Google CSE,这是他们给我的代码: <div id="cse" style="width: 100%;">Loading</div> <script src="http://www.google.com/jsapi" type="text/javascript"><

以下是我目前正在工作的网站:

多亏了SO社区先前的帮助,这些按钮将主“内容”div动态更改为按钮指向的任何链接。除了右上角的“搜索”按钮外,它们都工作得很好

我们正在使用Google CSE,这是他们给我的代码:

    <div id="cse" style="width: 100%;">Loading</div>
    <script src="http://www.google.com/jsapi" type="text/javascript"></script>
    <script type="text/javascript"> 
    google.load('search', '1', {language : 'en', style : google.loader.themes.V2_DEFAULT});
    google.setOnLoadCallback(function() {
    var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
    '005348393200361091503:k_xdk0rs2og', customSearchOptions);
    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    customSearchControl.draw('cse');
    }, true);
    </script>
正如您在测试站点所看到的,当您单击按钮时,文本被加载到div中,但是什么也没有发生,它只是说“加载”。如果你再按一下按钮,整个网站就会变成空白

如果您右键单击并在新选项卡中打开链接,它就可以正常工作

我想一定有一个简单的解决办法,我环顾四周,但没有找到解决这种情况的答案。我已经在使用jquery执行其他功能,@nicodems13提出了一种在jquery中重写google代码的方法,作为对这个问题的回答:

但是谷歌给我的代码的细节是不同的,我不知道如何调整它


谢谢!Brenden

我得到了脚本错误UncaughtReferenceError:google没有定义。在chrome控制台视图中。你的“谷歌”变量是如何在javascript中定义的?我在搜索引擎中使用的所有js都发布在上面。再次查看上面的代码,这里没有定义googlevar,它必须在引用的jsapi文件中定义。可能该文件没有作为jquery.load的一部分正确加载,因此代码不知道该做什么,这就是为什么chrome抛出该脚本错误的原因。也许我可以得到该文件的副本,并将其本地托管在站点上……只是要明确,上面编写的代码在自己的窗口中加载时可以完美地工作。当使用jquery.load加载它时,就是它不工作的时候。取出上面代码的第二行并将其放在索引头中不会改变问题。我想在搜索代码放入带有jquery.load的div之前加载jsapi文件可能会解决这个问题,但不会。这样做只会使整个网页在按下“搜索”按钮的那一刻变为空白。只是想一想,是否可以在pageload上加载搜索引擎,并使用style=display:none;,然后单击搜索按钮,显示div?