簡體   English   中英

如何更改 AMP HTML 中的電流 url?

[英]How to alter current url in AMP HTML?

在我的網站中,產品過濾是在服務器端通過更改 URL 來完成的,即。 通過在 URL 的末尾添加?q=alpha+beta+gama gama 來過濾包含標簽 alpha、beta 和 gama 的產品的類別

如果有人按下按鈕,我想從 url 中刪除“測試版”。

使用 javascript 在非放大器頁面中似乎很容易,但我找不到在放大器中執行此操作的方法。

是否有一個腳本可以找到當前的 url 並從中刪除一些關鍵字?

我打算用一個表格來實現這一點。 該表單將有多個輸入。 按下提交按鈕后,表單中的輸入字段將被抓取並附加到當前 url。 情況一:

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

根據您的用例,您可以簡單地使用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 更改的操作(即任何更改)的更多信息。

我們無法讀取當前的 url 並在 AMP 中對其進行操作。

在 AMP 中創建動態 url(或鏈接)的解決方案是什么?

我們應該有一個 state 策略來在 AMP 中創建動態 url。 我們應該在服務器端呈現默認 state 並在狀態更改時創建動態 url。 例如:

默認狀態(在服務器端呈現):

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

動態 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM