[英]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 中對其進行操作。
我們應該有一個 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.