Google Custom getElement at null - 无法访问 <gcse:..>元素
Google custom getElement at null - can't access to <gcse:...> element
首先,我真的很抱歉我的英语(真的很糟糕......我的工作有很大的问题。我想在加载页面(prestashop网站)时执行谷歌自定义搜索查询。我尝试了所有方法(使用谷歌 API 或 1000 个不同的论坛/网站),但我无法让它工作!
这是我的代码:
<div id="div_google_search" class="div_google_search">
<script>
var InitCSE = function() {
//google.search.cse.element.render();
var str="";
str= "{$search_query}";
var componentConfig = {
div: 'google_search',
tag: 'search',
gname: 'google_search',
attributes: {
queryParameterName: 'query',
enableHistory: true,
enableAutoComplete: true
}
};
google.search.cse.element.render( componentConfig );
var gsearch = google.search.cse.element.getElement('google_search');
//console.log(gsearch);
gsearch.execute(str);
};
window.__gcse = {
parsetags: 'explicit',
callback: function()
{
if( document.readyState == 'complete' )
{
InitCSE();
}
else
{
google.setOnLoadCallback( function () { InitCSE(); }, true );
}
}
};
var loadElements = function(){
var cx = '123:456';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
//console.log(gcse);
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
};
(function() {
loadElements();
})();
</script>
<gcse:search gname="google_search"></gcse:search>
</div>
和错误:
未捕获的类型错误:无法读取 null 的属性"执行"
我知道变量gsearch由于某种原因无法获取元素"google_search"。我想知道为什么..
非常感谢您的帮助!
我已经解决了问题!
我忘记了在 var 组件配置中指定的div :
var componentConfig = {
div: 'google_search',
tag: 'search',
gname: 'google_search',
attributes: {
queryParameterName: 'query',
enableHistory: true,
enableAutoComplete: true
}
};
结果:
<div id="div_gsearch" class="div_gsearch">
<div id="google_search"></div>
<script>
var InitCSE = function() {
//google.search.cse.element.render();
var str="";
str= "{$search_query}";
var componentConfig = {
div: 'google_search',
tag: 'search',
gname: 'google_search',
attributes: {
queryParameterName: 'query',
enableHistory: true,
enableAutoComplete: true
}
};
google.search.cse.element.render( componentConfig );
var gsearch = google.search.cse.element.getElement('google_search');
//console.log(gsearch);
gsearch.execute(str);
};
window.__gcse = {
parsetags: 'explicit',
callback: function()
{
if( document.readyState == 'complete' )
{
InitCSE();
}
else
{
google.setOnLoadCallback( function () { InitCSE(); }, true );
}
}
};
var loadElements = function(){
var cx = '123:456';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
//console.log(gcse);
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
};
(function() {
loadElements();
})();
</script>
<gcse:search gname="google_search"></gcse:search>
</div>
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 在Jquery detachment()和appendTo()之后定位元素
- 在动态创建的元素上获取对特定选择器的引用
- 根据元素和容器大小计算边距