gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:17:55 24 4
gpt4 key购买 nike

我正在使用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/

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