gpt4 book ai didi

javascript - 单击按钮时请求的 URL 的更改参数

转载 作者:行者123 更新时间:2023-11-30 18:17:01 26 4
gpt4 key购买 nike

对于无法提供更多信息,我深表歉意,如果信息有限,我将删除该问题。

所以,我有一个脚本可以生成一种搜索引擎,该搜索引擎依赖于脚本(也是动态生成的),这非常复杂,我对它没有任何影响。

当您单击应用(搜索)按钮时,将触发搜索过程,您可以在具有一些参数的新 URL 上看到结果。

E. g.: http://www..example.com/...&ThisParameter=XYZ&SecondParameter=foo&ThirdParameter=bar

我的问题是 - 是否可以将 "ThisParameter=XYZ" 更改为其他内容,例如。 G。 “ThisParameter=Something”

问题是我不知道 URL 是如何构造的,也不能影响它,所以我需要一个代码,它只接受生成的任何 URL 并更改提到的这一部分。

提前感谢您的意见!

编辑

我找到了影响生成的 URL 的脚本部分。当我在 DOM 中更改它时,它会将我重定向到所需的页面。

var options = {"FOO":123,"BAR":"ABC","ThisParameter":"STH","EXAMPLE":123, ...}

这是当你选择“复制路径”时的输出:

_options[0].ThisParameter

最佳答案

如果查询参数的序列始终相同:

var url = window.location.href;
var lst_temp = url.split('?');
var $lst_parts = lst_temp[1].split('&');

var new_val = 'blabla';
var position = 'x';
lst_parts[x] = 'ThisParameter=' + new_val;

var url_new = lst_temp[0] + '?';
url_new += lst_parts.join('&');

编辑:
如果事先不知道查询键的顺序,请执行以下操作:

从这里使用这个函数:https://stackoverflow.com/a/111545/888177

function EncodeQueryData(arr_data) {
var ret = [];
for (var d in arr_data)
ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(arr_data[d]));
return ret.join("&");
}

然后读取 url 并像这样拆分它:

var url = window.location.href;
var key = "ThisParameter";
var new_val = 'blabla';
var lst_temp = url.split('?');
var lst_parts = lst_temp[1].split('&');

添加此循环以创建包含查询参数和值的关联数组:

var arr_data = new Array();
for (var index in lst_parts) {
lst = lst_parts[index].split('=');
arr_data[lst[0]] = lst[1];
}

为了避免无限刷新:

var val = arr_data[key];
if (val != new_val) {
arr_data[key] = new_val;
var new_url = lst_temp[0] + '?' + EncodeQueryData(arr_data);
window.location.href = new_url;
}

关于javascript - 单击按钮时请求的 URL 的更改参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13011238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com