JavaScript动态拼接年月变量跳转日历URL失败问题求助
JavaScript动态拼接年月变量跳转日历URL失败问题求助
嘿,你的思路完全没问题——用JavaScript动态获取当前年月、拼接成带参数的URL再跳转是完全可行的!你遇到的document.location.assign(myUrl)不生效的问题,大概率是URL格式的小疏忽导致的。
你现在定义的myUrl是:
const myUrl = `www.somewhere.com/events.htm?pageComponentId=1234&month=${m}&year=${y}`;
这里的URL缺少了协议头(https://或者http://),浏览器会把它当成相对路径处理,而不是你想访问的外部绝对URL。举个例子,如果当前页面在https://your-current-site.com,浏览器会尝试跳转到https://your-current-site.com/www.somewhere.com/...,这显然不是你要的结果。
解决方法很简单,给URL加上协议头就行:
const currentDate = new Date(); const m = currentDate.getMonth(); const y = currentDate.getFullYear(); // 加上https://协议头 const myUrl = `https://www.somewhere.com/events.htm?pageComponentId=1234&month=${m}&year=${y}`; document.getElementById("currentDate").innerHTML = myUrl; document.location.assign(myUrl);
另外补充两个小细节:
- 如果你不确定目标网站用http还是https,可以用
//开头(协议相对URL),浏览器会自动匹配当前页面的协议:const myUrl =//www.somewhere.com/...`` - 确认页面上确实存在id为
currentDate的元素,不过你说其他部分都正常,这个应该没问题~
试试修改后的代码,应该就能正常跳转啦!
备注:内容来源于stack exchange,提问作者EdV
相关产品推荐
相关产品推荐

