樓主上午閒的無聊,把項目中其中的一個板塊重新做了一遍。在往html頁面中傳參數(URL)的時候發現,如果傳入的URL參數中存在特殊字符(“#”),則通過URL訪問圖片文件來達到預覽文件的功能就會出錯,而其餘的URL中並沒有(“#”)這個特殊字符,預覽功能則正常實現。有網友提供了一個解決辦法:將”#”替換成”%23”。
通過驗證,證實方法可行。即使用replace()函數可以替換URL中的”#”。亦即使用replace(“#”,”%23”)或者replace(/#/,”%23”)來實現。但是JavaScript中的replace()有個問題,它只會替換第一個匹配的字符,若後面還有需要替換的字符,其不做處理。網友給出了一個解決方案:將replace(/#/,”%23”)寫成replace(/#/g,”%23”)即可完成替換所有需要替換的字符。
未替換特殊字符之前的JS代碼:
document.getElementById("swapperInput").value = "" + r.preview;
替換特殊字符之後的JS代碼:
document.getElementById("swapperInput").value = "" + r.preview.replace(/\#/g,"%23");