我想制作一個表格,其中會有一行搜索,它將立即在 Spotify 上搜索曲目。
<form name="search">
<input id="inputSearch" type="text" name="search" placeholder="enter track">
<button id="btnSearch" type="button" onclick="window.open('https://open.spotify.com/search/' escape(document.forms['search'].elements['search'].value), '_blank')">search</button>
</form>
這是一個示例https://jsfiddle.net/z7po2vwg/
現在一切正常,除了西里爾字母搜索,也就是說,如果你插入類似的東西фывфыв,那么它將被編碼在鏈接中。看起來像這樣%u0444%u044B%u0432%u0444%u044B%u0432
我嘗試使用decodeURIComponent洗掉編碼
window.open('https://open.spotify.com/search/' decodeURIComponent(escape(document.forms['search'].elements['search'].value)), '_blank')
但我收到一個錯誤
未捕獲的 URIError:在 HTMLInputElement 的 decodeURIComponent () 處的 URI 格式錯誤。
在這種情況下可以做什么?
uj5u.com熱心網友回復:
MDN 檔案escape:
警告:雖然 escape() 沒有被嚴格棄用(如“從 Web 標準中洗掉”),但它在 ECMA-262 標準的附件 B 中定義,其介紹指出:
……本附件中規定的所有語言特征和行為都有一個或多個不受歡迎的特征,在沒有遺留使用的情況下,將從本規范中洗掉。… … 程式員在撰寫新的 ECMAScript 代碼時不應使用或假設存在這些特性和行為。…
escape在現代 JavaScript 代碼中沒有用例,您在這里看到的錯誤是提到的“不良特征”之一。
相反,您可以使用encodeURIComponent:
window.open('https://open.spotify.com/search/'
encodeURIComponent(document.forms.search.elements.search.value)), '_blank')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493586.html
標籤:javascript html
上一篇:反應-本地影像不會加載?
