0

Google カスタム検索の結果で、HTTP ではなく HTTPS 形式を強制的に使用しようとしています。API ドキュメントを調べましたが、この変更を行う方法を見つけることができませんでした。古い GCSE では HTTP または HTTPS を指定できたのを覚えていますが、Google がそれを更新して以来、指定できなくなっているようです。

http://www.google.com/cse/cse.jsを調べて、すべての HTTP オカレンスを HTTPS に変更し、www.google.com /jsapiと V1 と V2 の両方の方法を切り替えてみました。しかし、私は成功していません。

関連性があるかどうかにかかわらず、すべての HTTP の出現箇所を掘り下げて HTTPS に変更しましたが、すべての検索結果が目的の HTTPS アドレスではなく HTTP アドレスにリンクされたままです。

編集:コード

私は V1 または V2 を使用することにオープンです。それは問題ではありません。

V1コードは次のとおりです。

<div id='cse' style='width: 100%;'>Loading</div>
<script src='//www.google.com/jsapi' type='text/javascript'></script>
<script type='text/javascript'>
google.load('search', '1', {language: 'en', style: google.loader.themes.DEFAULT});
google.setOnLoadCallback(function() {
  var customSearchOptions = {};
  customSearchOptions['overlayResults'] = true;
  customSearchOptions['adoptions'] = {'layout' : 'noTop'};
  var customSearchControl =   new google.search.CustomSearchControl('MySearchID', customSearchOptions);
  customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
  var options = new google.search.DrawOptions();
  options.setAutoComplete(true);
  customSearchControl.draw('cse', options);
}, true);

V2コードは次のとおりです。

<script>
  (function() {
    var cx = 'MySearchID';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'https:') +
        '//www.google.com/cse/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:search></gcse:search>

上記の Javascript を変更し、V1 および V2 セクションの Javascript ソースを Google の代わりに私の JS を使用するように置き換えてみましたが、それでも問題は解決しませんでした。私はおそらく何かを見落としています..

何か案は?

ありがとう!

編集#2

朗報です、理解できました。

V1 コードを使用する場合、次のコードを追加できます。

google.search.Csedr.addOverride("mysite_");

このコードを含む行のすぐ上:

customSearchControl.draw('cse', options);

既存の Google CSS を上書きします。それを行った後、次のような独自の CSS を作成しました。

<div class="gs-title">
   <a class="gs-title" data-attr="{href:unescapedUrl.replace('http://','https://'),target:target}" data-body="html(title.replace('mySiteTitle :: ', ''))"></a>
</div>

結果には引き続き HTTP が表示されますが、ツールチップには HTTPS が表示され、適切な HTTPS ページに移動します。

評判が 10 未満であるため、すぐには自分の質問に答えることができませんが、この機能が利用可能になった数時間後に回答済みとしてマークします。

4

0 に答える 0