gpt4 book ai didi

javascript - JS输入文本到url+base64编码

转载 作者:行者123 更新时间:2023-12-02 23:24:00 26 4
gpt4 key购买 nike

我是 JS 新手,所以我会尝试解释这个问题。我正在寻找一个 JS 来执行一些任务,例如:输入文本表单以在 Base64 解码的字符串中包含某些“文本”,然后对该字符串进行编码。将该编码结果添加到 URL 并在提交时打开该 URL。

base64 解码字符串类似于:

{
"componentDef":"forceSearch:search",
"attributes":{
"term":"SEARCH STRING 2",
"scopeMap":{
"type":"TOP_RESULTS"
},
"context":{
"disableSpellCorrection":false,
"SEARCH_ACTIVITY":{
"term":"SEARCH STRING 2"
}
}
}
}

输入文本表单应将 SEARCH STRING 2 替换为提交的文本,如下所示:

{
"componentDef":"forceSearch:search",
"attributes":{
"term":"MYSUBMITEXT",
"scopeMap":{
"type":"TOP_RESULTS"
},
"context":{
"disableSpellCorrection":false,
"SEARCH_ACTIVITY":{
"term":"MYSUBMITEXT"
}
}
}
}

之后结果应该是base64编码的:

btoa({
"componentDef":"forceSearch:search",
"attributes":{
"term":"MYSUBMITEXT",
"scopeMap":{
"type":"TOP_RESULTS"
},
"context":{
"disableSpellCorrection":false,
"SEARCH_ACTIVITY":{
"term":"MYSUBMITEXT"
}
}

编码后的结果应添加到 url

onClick="javascript: window.open('http://www.mywebsite.com/print/' + 编码结果)"

我目前的主要问题是替换 2 个搜索字符串。我无法替换它,因为它已编码?!

更新:

我目前有此代码,但编码始终相同,因此我不是用户正在输入的文本值:

<html>

<script type="text/javascript">

function goToPage() {
var searchQuery = document.getElementById('text').value;
var stringToEncode = '{"componentDef":"forceSearch:search","attributes":{"term":"'+ searchQuery + '","scopeMap":{"type":"TOP_RESULTS"},"context":{"disableSpellCorrection":false,"SEARCH_ACTIVITY":{"term":"'+ searchQuery + '"}}}}';
var encodedString = btoa(stringToEncode);
document.write("http://www.mywebsite.com/print/" + encodedString);
}
</script>
<input type="text" id="text" />
<input type="submit" value="submit" onclick="goToPage();" />
</html>

最佳答案

  1. 使用 JSON.parse 将字符串解析为 JavaScript 对象
var myString = '{"componentDef":"forceSearch:search","attributes":{"term":"SEARCH STRING 2","scopeMap":{"type":"TOP_RESULTS"},"context":{"disableSpellCorrection":false,"SEARCH_ACTIVITY":{"term":"SEARCH STRING 2"}}}}';

var myObject = JSON.parse(myString);
  • 访问对象中的属性并将其替换为所需的值
  • myObject.attributes.term = 'New value';
    myObject.attributes.context.term = 'New value';
  • 将对象转换回字符串并使用 base64 对其进行编码
  • var newString = JSON.stringify(myObject);
    var encodedString = btoa(newString);

    点击处理程序

    <a href="#" onclick="javascript:window.open('http://www.mywebsite.com/print/' + encodedString)">Click here</a>

    关于javascript - JS输入文本到url+base64编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56818397/

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