Javascript 将JSON值发送到URL

Javascript 将JSON值发送到URL,javascript,jquery,json,refresh,Javascript,Jquery,Json,Refresh,我有一个JSON对象: [{"page":"Test", "seconds":"56", }] 我尝试使用Javascript在加载“页面”值时将其加载到我的URL中,在“秒”值的秒数之后,刷新页面 当我点击链接时,我不希望URL仅仅是testpage.php?screen=1,但我希望页面加载立即将“page”的值附加到URL,如下所示: testpage.php?screen=1&page=Test 以下是我到目前为止的脚本: <script type="text/

我有一个JSON对象:

[{"page":"Test",
    "seconds":"56",
}]
我尝试使用Javascript在加载“页面”值时将其加载到我的URL中,在“秒”值的秒数之后,刷新页面

当我点击链接
时,我不希望URL仅仅是
testpage.php?screen=1
,但我希望页面加载立即将“page”的值附加到URL,如下所示:

testpage.php?screen=1&page=Test
以下是我到目前为止的脚本:

<script type="text/javascript">
let obj = <?php echo $object; ?>;//This is my JSON object, already encoded and parsed

let params = new URL(document.location).searchParams;
params.set("page", obj[0].page);

window.setTimeout(function () {
    window.location.href = /*not sure here*/;
}, obj.seconds * 1000);

</script>

设obj=//这是我的JSON对象,已经编码和解析了
让params=新URL(document.location);
参数集(“第页”,对象[0]。第页);
setTimeout(函数(){
window.location.href=/*此处不确定*;
},obj.秒*1000);
非常感谢对完成此脚本的任何帮助,我只是不确定如何完成此脚本以执行适当的功能

更新:

尝试根据间隔显示和隐藏内容

如果我的JSON有带有一个页面ID的元素,那么这可以正常工作,但是如果第1页有2个元素,第2页有2个元素,那么它就不工作了

我想在第一页显示元素,在间隔之后显示下一个元素

让obj=[{
“pageID”:“93”,
“页面类型\ id”:“2”,
“显示id”:“2”,
“持续时间”:“74”,
“背景图片”:“images\/bg\u rainbow.svg”,
“面板id”:“86”,
“面板类型id”:“2”,
“cont_id”:“138”,
“contID”:“138”,
“内容”:“\r\n\r\n\r\n\r\n\r\n左93\r\n\r\n”
},
{
“pageID”:“93”,
“页面类型\ id”:“2”,
“显示id”:“2”,
“幻灯片顺序”:空,
“持续时间”:“74”,
“背景图片”:“images\/bg\u rainbow.svg”,
“面板id”:“87”,
“面板类型id”:“3”,
“cont_id”:“139”,
“contID”:“139”,
“内容”:“\r\n\r\n\r\n\r\n\r\n右93\r\n\r\n”
},
{
“pageID”:“94”,
“页面类型\ id”:“2”,
“显示id”:“2”,
“幻灯片顺序”:空,
“持续时间”:“75”,
“背景图片”:“images\/bg\u rainbow.svg”,
“面板id”:“88”,
“面板类型id”:“3”,
“cont_id”:“140”,
“contID”:“140”,
“内容”:“\r\n\r\n\r\n\r\n\r\n右新\r\n\r\n”
}
];
设计数器=0;
var fullContent=document.getElementById('fullContent');
var leftContent=document.getElementById('leftContent');
var righcontent=document.getElementById('righcontent');
var fullColumn=document.getElementById('fullColumn');
var leftColumn=document.getElementById('leftColumn');
var rightColumn=document.getElementById('rightColumn');
设置间隔(()=>{
const currentJSONobject=obj[计数器];
if(currentJSONobject.page_type_id==1){
leftColumn.style.display=“无”;
rightColumn.style.display=“无”;
如果(currentJSONobject.panel_type_id==1){
fullContent.innerHTML=currentJSONobject.content;
}
//如果是半页
}else if(currentJSONobject.page_type_id==2){
fullColumn.style.display=“无”;
如果(currentJSONobject.panel_type_id==2){
leftContent.innerHTML=currentJSONobject.content;
}else if(currentJSONobject.panel_type_id==3){
rightContent.innerHTML=currentJSONobject.content;
}
}
$('#middle').css('background-image','url('+currentJSONobject.background_img+'));
计数器+=1;
if(计数器===对象长度){
计数器=0;
}
}, 1500)
控制台日志(obj)

您需要将新的URL对象保存在一个变量中,以便可以对其进行整体修改

let newUrl = new URL(document.location);
newUrl.searchParams.set("page", obj[0].page);
window.setTimeout(function() {
    window.location.href = newUrl.href;
}, obj[0].seconds * 1000);

您需要将新的URL对象保存在一个变量中,以便可以对其进行整体修改

let newUrl = new URL(document.location);
newUrl.searchParams.set("page", obj[0].page);
window.setTimeout(function() {
    window.location.href = newUrl.href;
}, obj[0].seconds * 1000);

我希望下面的代码适合您

以下代码是在我的记忆中编写的,obj数组的最后一个元素将用于重新加载


这是测试页面
函数重载页面(){
var-obj=;
警报(“页面将以“+obj[obj.length-1].秒+秒”重新加载”);
让newUrl=newUrl(document.location);
newUrl.searchParams.set(“page”,obj[obj.length-1].page);
setTimeout(函数(){
window.location.href=newUrl.href;
},obj[obj.length-1]。秒*1000);
}
var url=新url(document.location);
如果(!url.searchParams.get(“页面”)){
window.addEventListener('load',reloadPage,false);
}

我希望下面的代码适合您

以下代码是在我的记忆中编写的,obj数组的最后一个元素将用于重新加载


这是测试页面
函数重载页面(){
var-obj=;
警报(“页面将以“+obj[obj.length-1].秒+秒”重新加载”);
让newUrl=newUrl(document.location);
newUrl.searchParams.set(“page”,obj[obj.length-1].page);
setTimeout(函数(){
window.location.href=newUrl.href;
},obj[obj.length-1]。秒*1000);
}
var url=新url(document.location);
如果(!url.searchParams.get(“页面”)){
window.addEventListener('load',reloadPage,false);
}

谢谢,我很快就可以测试5his了。你能用小提琴演奏吗?@TomN。我在本地系统上测试了这段代码,对我来说效果很好。请随时测试,如果有任何问题,请随时与我联系。ronit@gmail.comThank你,我认为这是有效的,除非它不会在页面加载时立即添加任何内容。我正在尝试将其扩展到可以进一步扩展的地方,但是如果我访问上面问题中给出的链接,在刷新之前,它不会向URL添加任何内容。我希望它在第一页加载时立即追加,然后刷新以执行相同的过程谢谢,我很快就能测试5his。你能用小提琴演奏吗?@TomN。我在本地系统上测试了这段代码,对我来说效果很好。请随时测试,如果有任何问题,请随时与我联系。ronit@gmail.comThank你,我认为这是有效的,除非它没有附加