Цель:
, когда сайт загружен, должно быть окно поиска вместе с пунктами меню на панели навигации.
См. Рисунок ниже:
Проблема:
В настоящее время при первой загрузке окно пользовательского поиска Google не отображается. не появляется. Однако, когда вы перезагрузите / обновите sh страницу, она будет выглядеть как обычно и работать как обычно. Но это раздражает, так как люди могут не знать, что у меня есть окно поиска, пока они не обновят sh или не перезагрузят страницу. Вот как это выглядит при первой загрузке.
ОБНОВЛЕНИЕ: Я спросил, и для некоторых это нормально. Я тестировал его несколько раз в конце, в режиме инкогнито он иногда загружается нормально, а иногда нет (требуется перезагрузка / обновление sh). Так что ... не каждый может воспроизвести эту проблему постоянно. Мне любопытно, почему так происходит.
Я пытался:
В соответствии с инструкциями Google , я сделал следующее: В компоненте nav моего проекта gatsby,
import { Helmet } from "react-helmet"
...
<Helmet>
<script async src="https://cse.google.com/cse.js?cx=123:456"></script>
</Helmet>
<nav className="nav" >
<div className="nav-container">
<Link to="/">Home</Link>
<Link to="/blog">All</Link>
<Link to="/tags/food">Food</Link>
<Link to="/tags/style">Style</Link>
<Link to="/tags/living">Living</Link>
<Link to="/tags/travel">Travel</Link>
<Link to="/about">About</Link>
<div className="gcse-search"></div>
</div>
</nav>
Я использовал devtool и увидел, что, кажется, ничего не загружено в div, где должно появиться окно поиска. Я понятия не имею, почему это так.
ОБНОВЛЕНИЕ: Привет, с тех пор я изменил атрибут "asyn c" на "defer" и проверил его в режиме private / incognito, и вот результат:
LinuxMint :
Хром: ОК
Firefox: ОК
Манджаро (Linux)
Chrome: OK
Firefox: мигает, но не загружается
Windows:
Firefox: продолжает мигать и не горит t load
Edge: в основном нормально, но иногда это не работает
Iphone:
Safari: перед обновлением необходимо дважды обновить или перезагрузить появляется
Chrome: ОК
Android:
Chrome: ОК
ОБНОВЛЕНИЕ: Я изменил мою поисковую службу на algolia, поэтому живой сайт недоступен для тестирования.
Вот более простая версия, только что созданная для целей тестирования: LIVE DEMO , как вы можете видеть, окно поиска кратковременно мигает, а затем исчезает.
Код выглядит следующим образом:
import React from "react"
import { Helmet } from "react-helmet"
import Layout from "../components/layout"
import SEO from "../components/seo"
const IndexPage = () => (
<>
<Helmet>
<script async src="https://cse.google.com/cse.js?cx=123:456"></script>
</Helmet>
<Layout>
<SEO title="Home" />
<h1>Here goes the Google search:</h1>
<div className="gcse-search"></div>
</Layout>
</>
)
export default IndexPage
Вопрос:
Почему это происходит?
Как отладить и исправить это?