jquery - 数据发布与 Firefox-IE 不同

标签 jquery

我正在使用jquery发送一些<pre>中的代码标签 my blog到处理程序,该处理程序将用包含格式化代码的正确的 Pastebin.com 框架替换它们。

我使用 MD5 哈希将代码块映射到 Pastebin 相应的翻译,以便每个代码片段只有一个 Paste bin。

问题是发布的字符串在 IE 和 Firefox 之间似乎略有变化,所以我没有精确的 MD5 编码。由于某种原因,问题仅出现在生产服务器上。

jquery代码是这样的:

$(function() {

    $.each($('pre'), function(i, e) {

        if (e.lang != '') {

            $.ajax({
                url: 'pastebin.ashx',
                context: $(this),
                data: {
                    data: $(this).text(),
                    lang: e.lang
                },
                success: function(t) {
                    if (t.indexOf('*error*') != 0) {
                        var h = Math.floor($(this).height() * 1.62) + "px";
                        $(this).replaceWith("<iframe src='http://pastebin.com/embed_iframe.php?i=" + t + "' style='border:none;width:100%;height:" + h + "'></iframe>")
                    }

                }
            });
        }
    });

});​

是否有某种原因导致发布的数据在不同的浏览器中发生变化? 编辑

并非所有 IE 都会出现此问题,同一版本 9.0.8112.16421 在一台机器上可以运行,而在另一台机器上则不会!我想差异一定是在 $(this).text() 中。失败的版本似乎包含没有回车的文本。

最佳答案

如果问题出在回车符上,为什么不直接将它们从 text() 中删除呢? (可能有更好、更安全的方法来去除所有回车符,例如 here,我只是输入了我想到的最简单的代码)。

    if (e.lang != '') {
        var data = $(this).text();
        data.replace(new RegExp( "\\r", "g" ), '');
        $.ajax({
            url: 'pastebin.ashx',
            context: $(this),
            data: {
                data: data,
                lang: e.lang
            },
            success: function(t) {
                if (t.indexOf('*error*') != 0) {
                    var h = Math.floor($(this).height() * 1.62) + "px";
                    $(this).replaceWith("<iframe src='http://pastebin.com/embed_iframe.php?i=" + t + "' style='border:none;width:100%;height:" + h + "'></iframe>")
                }

            }
        });
    }

这样你应该有相同的md5

关于jquery - 数据发布与 Firefox-IE 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9290639/

相关文章:

jquery - 有关 JQuery 菜单上的 "selected"项目的帮助

jquery - TypeError : $(…). 工具提示不是函数

javascript - Mousedown 和 Mouseup 与触发调用有关?

javascript - 如何确保只有有效的数字字符输入到文本框中?

javascript - jQuery:向日期字符串添加前导零

javascript - 如何使用 JavaScript 或 jQuery 从 strReviewers 字符串中删除文本(例如 ["88664734","88639280","88676217"])?

javascript - 单击导航 slider 时,有没有办法禁用自动滚动的光滑 slider ?

javascript - jquery 迭代 '.each' 中的数字

JavaScript/jQuery : how to get HTML and display HTML, 包括标签

javascript - 当按下 "Picture in Picture"键时,jQuery 强制 html5 视频播放 "i"