javascript - 在 php 或 javascript 中将参数添加到 url 后,如何修复刷新页面?
问题描述
我正在尝试用 php 和 javascript 刷新页面,但它无法正常工作。我使用了多个函数和代码,但我找不到一个好的答案。我在下面使用了javascript代码。但它会多次刷新并且不停。
function insertParam(key, value)
{
key = encodeURI(key); value = encodeURI(value);
var kvp = document.location.search.substr(1).split('&');
var i=kvp.length; var x; while(i--)
{
x = kvp[i].split('=');
if (x[0]==key)
{
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if(i<0) {kvp[kvp.length] = [key,value].join('=');}
//this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&');
}
我也使用:
var url = window.location.href;
if (url.indexOf('?') > -1){
url += '¶m=1'
}else{
url += '?param=1'
}
window.location.href = url;
但是 id 将参数添加到 url 无穷大。我只想在 url 中添加一个参数或两个参数。我该如何解决?谢谢。
解决方案
检查您的paramName
存在,如果不使用参数重新加载:
var paramName = 'param';
var url = new URL(window.location.href);
var searchParams = new URLSearchParams(url.search);
if (!searchParams.get(paramName)) {
searchParams.append(paramName, 'value');
url.search = searchParams.toString();
window.location.href = url.toString();
}
或者您可以$_GET
在 php 中使用来渲染 js 代码是否重新加载。
推荐阅读
- html - 图像在 HTML 电子邮件签名中显得模糊,即使 HTML 直接在 Chrome 中打开也是如此
- node.js - BigQuery 不是构造函数 使用 Nodejs 连接到 Google BigQuery 时出错
- javascript - Collection.find() 仅适用于某些集合
- java - Maven 中的 scm 连接标记与项目的真实位置
- php - Yii2调用不同模型的方法/函数
- c - 在这种情况下如何正确释放双指针的内存?
- php - NetBeans IDE 8.2 + XDebug + Wampserver 3.4.1 不工作
- javascript - HTML/Javascript - setTimeout 问题
- android - 不存在像默认构造一样的创建者):无法从对象值反序列化(没有基于委托或属性的创建者
- html - 防止最小内容列扩展