Как изменить текущий URL в AMP HTML? - PullRequest
3 голосов
/ 11 апреля 2020

На моем веб-сайте фильтрация продуктов выполняется на стороне сервера путем изменения URL-адресов, ie. добавив ?q=alpha+beta+gama в конце URL, если категория должна быть отфильтрована для продуктов, содержащих теги alpha, beta & gama

Я хочу удалить «beta» из URL, если кто-то нажмет на Кнопка.

Кажется простым на страницах без усилителя с помощью javascript, но я не могу найти способ сделать это в усилителе.

Есть ли скрипт, который может найти текущий URL и удалить некоторые ключевые слова из них на основе?

Я планирую добиться этого с помощью формы. Форма будет иметь несколько входов. При нажатии кнопки отправки поля ввода в форме будут захвачены и добавлены к текущему URL. Ситуация 1:

The current url is website.com/?view=amp
Desirable url is website.com/?view=amp&q=alpha+beta+gama

Ситуация 2

Current url is website.com/?view=amp&q=alpha+beta+gama+delta
Second desirable URL is website.com/?view=amp&q=alpha+gama

Ответы [ 2 ]

4 голосов
/ 27 апреля 2020

В соответствии с вашим вариантом использования вы можете просто использовать amp-bind, чтобы обновлять URL-адрес в случае, если пользователь добавляет / изменяет значение по умолчанию для ввода.

например,

<label>Username
    <input name="username" on="change:AMP.setState({name: event.value})"/>
</label>
<a href="example.com/default-url" [href]="'example.com/default-url?name=' + name">Submit</a>

Итак, вам нужно указать URL-адрес по умолчанию в виде href значения по умолчанию и [href] будет обновлено URL-адрес по умолчанию, когда любое изменение в поле ввода сделано (amp-bind работает только при срабатывании элементов с действиями AMP, удалите). Вы можете узнать больше о действиях (то есть о любых изменениях) для внесения изменений в URL здесь .

3 голосов
/ 23 апреля 2020

Мы не можем прочитать текущий URL и манипулировать им в AMP.

Что такое решение для создания динамических c URL (или ссылок) в AMP?

У нас должно быть состояние стратегия создания динамического c URL в AMP. Мы должны отобразить состояние по умолчанию на стороне сервера и создать динамический URL-адрес c при изменении состояний. например:

Состояния по умолчанию (отображаются на стороне сервера):

<amp-state id="filters">
  <script type="application/json">
    {
      "alpha": "",
      "beta": "",
      "gama": ""
    }
  </script>
</amp-state>

Dynami c База URL-адресов на основе состояний:

<a href="website.com/?view=amp" data-amp-bind-href="'website.com/?view=amp&q=' + filters.alpha + (filters.beta ? '+' + filters.beta : '') + (filters.gama ? '+' + filters.gama : '')">dynamic link</a>
...