Google検索をカスタマイズ-マニュアル荷重-実行からurl params
-
12-12-2019 - |
質問
が奇数の挙動からgoogle検索をカスタマイズすることはできるのか?sussます。そうはwwww
私せざる独自の社内検索エンジンでは限定商品です。を実装したいのgoogleカスタム検索結果の検索結果ページです。Iフィギュア化いたしましたできるだけ実行する検索のクエリvarsのurlを返却以外のすべての商品の内容としては:
<section style="min-height:600px">
<div style="background-color:#DFDFDF; min-height:800px; width:100%;">
<div id="cse">Loading</div>
</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
$(document).ready( function(){
console.log('search initiated');
var t = window.setTimeout( function(){ customSearch(); }, 5000 );
});
function customSearch(){
var q = urlParams()['q'];
if (q != undefined && q != ""){
console.log('q : %s', q); //outputs successfully
google.load('search', '1');
google.setOnLoadCallback(function () {
var customSearchControl = new google.search.CustomSearchControl(MY CUSTOM ID KEY);
var cseDrawOptions = new google.search.DrawOptions();
cseDrawOptions.setAutoComplete(true); //unknown if this is required...
customSearchControl.draw('cse',cseDrawOptions);
customSearchControl.execute(q);
}, true);
}
}
function urlParams(){
var vars = [];
var hash;
var index = window.location.href.indexOf('?');
if( index != -1 ){
var hashes = window.location.href.slice(index + 1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1].replace(/\+/g, " ");
}
}
return vars;
}
//]>
</script>
</section>
っているので注意してほし引き他のすべてのコンテンツのロジックがその実施ざは全く同じものです。
での動作は以下のようになります。ページ負荷の細かんされるのを遅らせて、google検索、タイムアウト試験目的のため).仮にあるクエリのvarのurlのコンソールの痕跡として期待される。次のページだけが底のないコンテンツからです。"掃"...意味の全ての要素に於ページがなくなり、やが上書きされる新しいページです。として検出されなければ時間は制御さんをiframe-その出力などのページ <body>
以下のhtmlページに表示されます。
私は準備数に関する記事をやったの API -このコードになるように見える。しかし、チャイコフスキーはい分けるどれがいいですか?
と思欠?
乾杯-
更新
続いろなことがあることが明らかとなった何らかの理由:
google.load('search', '1');
google.google.setOnLoadCallback( console.log('loaded') )
その原因となったのページの問題です。の対応ページが含まれるリンク、検索モジュールではホスティングそして、手動でリンクの方にファイル移行、 google.load
しか検索している
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script src="http://www.google.com/uds/?file=search&v=1" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
... search logic
そしてこの代替構文を google developers ページを見ていると想定どおりに動作:
$(document).ready( function(){
google.load("search", "1", {"callback" : customSearch});
});
function customSearch(){
var q = urlParams()['q'];
if (q != undefined && q != ""){
var cseControl = new google.search.CustomSearchControl('MY CUSTOM KEY');
var cseDrawOptions = new google.search.DrawOptions();
cseDrawOptions.enableSearchResultsOnly()
cseControl.draw('cse', cseDrawOptions);
cseControl.execute(q);
}
}
る作品として期待される。他のサイトの問題ここでは、ホストの
Unsafe JavaScript attempt to access frame with URL http://mydomain from frame with URL http://www.google/cse?...
ることがスローされます。
わからないどのように二つの異なるバージョンの負荷の書式の変更も...がっているようです。どのような場合、私は明をめぐる対立を解決するこれらのクロスドメイン。
思います。
解決
癒しを感じるひとつのですか?
でも私は基本的にはたソリューションを用いて、代替方法だと思いますが柔軟になります。使用googles RESTful API 簡単なjquery .ajax
電話、入手することができる、可能な結果がないクロスドメインのエラー:
<div id="cse">Loading</div>
<script>
//https://developers.google.com/custom-search/v1/getting_started
//https://developers.google.com/custom-search/v1/using_rest#query-params
//https://developers.google.com/custom-search/v1/cse/list
var _url = "https://www.googleapis.com/customsearch/v1";
var _key = 'AIzaSy... your api key here';
var _cx = '001809... your engine id';
var _q = urlParams()['q']; //query param
jQuery(document).ready(function() {
$j.ajax({
url : _url,
type : 'GET',
dataType : 'jsonp',
data :{
key : _key,
cx : _cx,
q :_q
},
success : function(data, textStatus, jqXHR){ responseHandler(data); },
error : function(jqXHR, textStatus, errorThrown){ console.log('error: %s'), errorThrown},
beforeSend : function(){ console.log('sending request')},
crossDomain : true
});
});
function responseHandler( response, status) {
console.log(response);
var cse = $j('#cse'); // render vars as needed...
for (var i = 0; i < response.items.length; i++) {
var item = response.items[i];
cse.append( "<br>" + item.htmlTitle);
}
}
function urlParams(){
var vars = [];
var hash;
var index = window.location.href.indexOf('?');
if( index != -1 ){
var hashes = window.location.href.slice(index + 1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
}
return vars;
}
</script>
でもD
乾杯