在移动浏览器上(?m = 1)修改了用于博客的Java url的Base64编码吗?

时间:2018-09-17 16:35:39

标签: javascript url blogger

所以我很困惑。我知道有很多用于JS的Base64编码器/解码器,但是没有用于JS的Base64编码器/解码器,到目前为止,在stackoverflow上的搜索已经枯竭。 我正在BLOGGER上尝试使用btoa()和atob()JS方法制作简单的加密脚本以进行加密,然后再次解密URL 在桌面浏览器上,它运行得很好,并且原始链接/ URL成功地重新生成,但是在移动浏览器上尝试时,由于博客作者在url末尾添加了这个后缀(?m = 1),导致所有内容混乱,最终链接确实不提供原始链接

这是我的密码

// that converts the original url to base64 through btoa()
    <input id="myinput" type="text" name="search" />
   <input id="shrt" type="submit" value="Shorten" onclick="myFunction()" />
   <textarea id="m"></textarea> 
   <script>
      function myFunction() {
         var mm = document.getElementById("myinput").value;
         var b64 = btoa(mm);
         document.getElementById('m').innerHTML = "https://basebb.blogspot.com/p/go.html?url=" + b64;};
      </script>

然后我使用window.location.href来获取链接并生成另一个以base64加密的链接

    <a id="lnk" href="" style="font-size: 40px;">FirstLink</a>
 <script>
 var str = window.location.href;
 var res = str.substr(42, );
 var a = document.getElementById('lnk');
 a.href = "https://basebb.blogspot.com/2018/09/art.html?url=" + res;
</script>

最后我使用atob()在此处恢复原始网址

   <a id="lnk" href="" style="font-size: 40px;">FinalLink</a>
     <script>
        var str = window.location.href;
        var str1 = str.substr(49, );
        var a = document.getElementById('lnk');
        a.href = atob(str1);
     </script>

尝试(https://twitter.com/)可以给我 (https://basebb.blogspot.com/p/go.html?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8=

正如我所说的,它在台式机上运行良好,但是在第二次重定向后在移动设备上,它给了我

https://basebb.blogspot.com/p/go.html?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8%3D&m=1

请注意,结尾处(%3D&m = 1)会引起所有问题

另一个问题是,此(%3D&m = 1)随着每个链接的长度和字符的改变而改变

我尝试了许多方法,例如substr(),slice(),replace(),但没有一种方法有效,问题仍然存在

请帮忙吗? 对不起,我的英语不好

0 个答案:

没有答案