javascript - Internet Explorer 中的 ROT-13 链接解码失败

标签 javascript internet-explorer rot13

我将网站上的所有电子邮件地址编码为 ROT-13,然后使用 Javascript 对地址进行解码(以避免垃圾邮件)。然而,在 IE 7 或 8 中,解码完全不起作用。在 Chrome、Safari、Firefox 中工作得非常好。关于出了什么问题有什么想法吗?

更新 链接“href”已正确解码,并且单击时链接实际上可以正常工作。因此,只有链接文本(HTML 内容)无法解码。

这是我正在使用的代码:

/***********************************************
DECODE ROT13 EMAIL LINKS
***********************************************/

$('a.email-encoded').each(function() {
    $(this).attr('href', rot13x($(this).attr('href')));
    $(this).html(rot13x($(this).html()));
});

function rot13x(s) {

    var rxi = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    var rxo = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm5678901234';
    var map = [];
    var buf = '';

    for (z = 0; z < rxi.length; z++) {map[rxi.substr(z, 1)] = rxo.substr(z, 1);}

    for (z = 0; z < s.length; z++) {
        var c = s.charAt(z);
        buf  += (c in map ? map[c] : c);
    }

    return buf;
}

最佳答案

每当我看到for时我都会担心循环从零开始并使用 <=其停止条件:

for (z = 0; z <= s.length; z++) {

这个习惯用法使得取消引用 s[0] 变得非常容易。和s[length] ,当最后定义的元素通常是 s[length-1] 时.

IE 的 JavaScript 引擎如何处理字符串越界读写?

关于javascript - Internet Explorer 中的 ROT-13 链接解码失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220729/

相关文章:

jquery - Internet Explorer 中的 "SCRIPT5009: ' handleResponse ' is undefined"

javascript - 我的 Greasemonkey 脚本破坏了 IE9 HTTPS 安全性?

ruby - Easy ROT13 Ruby "programme"之谜

c - 我的代码涉及 rot-13 时遇到问题

javascript - 无法让 OnTriggerEnter 循环

javascript - 使用 Puppeteer 处理将文件上传到网站的对话框

IE 中的 JavaScript Math.round 错误

python - 使用 Python 解密时,ROT2 密码会产生与预期不同的字符

javascript - 插件可以与 downthemall 插件通信吗?

javascript - AngularJS 将 ui-view 嵌套到 ng-repeat 中