为什么javascript协议会自动解码URL?
我不明白为什么javascript协议会解码编码的URL,例如:为什么javascript协议会自动解码URL?,javascript,php,urlencode,urldecode,Javascript,Php,Urlencode,Urldecode,我不明白为什么javascript协议会解码编码的URL,例如: <a href="javascript:myFunction('%3DcDO4w67epn64o76');">press</a> function myFunction(id) { alert(id); //it will generate =cDO4w67epn64o76 } 函数myFunction(id) { 警报(id);//它将生成=cDO4w
<a href="javascript:myFunction('%3DcDO4w67epn64o76');">press</a>
function myFunction(id)
{
alert(id); //it will generate =cDO4w67epn64o76
}
函数myFunction(id)
{
警报(id);//它将生成=cDO4w67epn64o76
}
我在加密和解密中使用这些字符串
请给我一个真正的原因和解决方案(原因对我来说非常重要),我知道我可以替换(=)符号,但我担心包装器也会解码其余的编码字符串
注意:在php中,GET、REQUEST全局变量会自动解码url。因为它位于
href
属性中,url是预期的,所以浏览器正在“规范化”url的URI编码(使用javascript
伪方案)
您可以将其放在另一个属性中,然后得到该属性,如下所示:
函数myFunction(元素){
console.log(element.getAttribute(“数据值”);//它将生成=cDO4w67epn64o76
}
使用javascript:
方案的URL仍然是URL
您试图将URL存储在URL中的JavaScript字符串中
将外部URL解码为JavaScript时,将解码编码字符的百分比
要执行您正在尝试的操作,您需要将JavaScript中的任何特殊字符(如%
)转换为URL编码:
<a href="javascript:myFunction('%253DcDO4w67epn64o76')%3B">test</a>
不过,您应该只在创建bookmarklet时使用它 如果希望在单击某个内容时运行JavaScript,则使用单击事件处理程序。在现代方法中,可以使用
onclick
属性,但addEventListener
的值等于“而不是90年代”
同样,如果你没有链接到某个地方,不要使用链接。请使用按钮。到目前为止,您的答案对我来说是完美的,但在中,标准化将通过解码未保留的编码字符来应用,此处保留等号!