【发布时间】:2020-11-09 09:45:14
【问题描述】:
我需要将参数值存储在 localStorage 中:
<script>
let searchParams = new URLSearchParams(window.location.search);
localStorage.setItem('from', searchParams.get('from'));
localStorage.setItem('page', searchParams.get('page'));
localStorage.setItem('distance',searchParams.get('distance'));
function addParameter() {
document.getElementById('nav-bottom-back').removeAttribute("href");
window.location = '<%= url_for(way_sleeps_path(params[:way_id])) %>?from=' + localStorage.getItem('from') + '&distance=' + localStorage.getItem('distance') + '&page=' + localStorage.getItem('page');
}
</script>
当一个或多个参数为空或不存在时,我的函数 addParameter 返回例如: `?from=null&distance=null&page=2 我得到一个错误。
如何检查 localStorage 是否返回非空值或 null 值并将它们添加到 url 中?
**我已按照 York 的建议更新了我的脚本 **
function addParameter() {
document.getElementById('nav-bottom-back').removeAttribute("href");
window.location = '<%= url_for(way_sleeps_path(params[:way_id])) %>?from=' + (localStorage.getItem('from') || '') + '&distance=' + (localStorage.getItem('distance') || '') + '&page=' + (localStorage.getItem('page') || '');
}
但是
在 localStorage 中,我得到 3 个值:页面、距离和距离
但是我的函数返回了一个错误的 url:
?from=112&distance=1 没有页面参数
如果我的 url 没有参数,我的函数返回:
?from=null&distance=null
【问题讨论】:
-
你没有申请 || '' 到您发布的更新中的 localStorage.getItem('from') 。可能值得将 () 放在每个 localStorage.getItem(key) || '' 组。
-
这是一个错误...我复制了错误的行 ;) 我尝试在每个值周围使用 () 但我仍然遇到同样的问题