隐藏 Google 自定义搜索元素 API 2.0 的搜索引擎 ID
Hide Search Engine ID for Google Custom Search Element API 2.0
我正在 ASP.NET MVC 项目中实施 Google Custom Search Element API 2.0
。在文档中,他们要求在视图中包含以下 javascript,随后是 <gcse:search>
元素。
<script>
(function() {
var cx = 'xxxxxxxx:yyyyyyyy';
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:search></gcse:search>
然而,搜索引擎id在行中可见:
var cx = 'xxxxxxxx:yyyyyyyy';
在浏览器中,选择 View Source
(或类似选项)允许用户查看脚本和搜索引擎 ID。
如何确保没有人能看到我的 ID?
我找到了解决这个问题的方法。通过将 Google 脚本移动到它自己的将搜索引擎 ID 作为参数的函数:
function buildSearchElement(cx)
{
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);
};
然后我在我的控制器上调用一个方法,在页面加载时 returns 搜索引擎 ID。完成后,回调是 buildSearchElement
函数:
(function ()
{
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function()
{
if (httpRequest.readyState === 4 && httpRequest.status === 200)
{
buildSearchElement(httpRequest.responseText);
}
}
httpRequest.open("GET", "/GetSearchElementId");
httpRequest.send();
})();
我正在 ASP.NET MVC 项目中实施 Google Custom Search Element API 2.0
。在文档中,他们要求在视图中包含以下 javascript,随后是 <gcse:search>
元素。
<script>
(function() {
var cx = 'xxxxxxxx:yyyyyyyy';
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:search></gcse:search>
然而,搜索引擎id在行中可见:
var cx = 'xxxxxxxx:yyyyyyyy';
在浏览器中,选择 View Source
(或类似选项)允许用户查看脚本和搜索引擎 ID。
如何确保没有人能看到我的 ID?
我找到了解决这个问题的方法。通过将 Google 脚本移动到它自己的将搜索引擎 ID 作为参数的函数:
function buildSearchElement(cx)
{
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);
};
然后我在我的控制器上调用一个方法,在页面加载时 returns 搜索引擎 ID。完成后,回调是 buildSearchElement
函数:
(function ()
{
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function()
{
if (httpRequest.readyState === 4 && httpRequest.status === 200)
{
buildSearchElement(httpRequest.responseText);
}
}
httpRequest.open("GET", "/GetSearchElementId");
httpRequest.send();
})();