为什么我的javascript提示符中的换行符不再粘贴到Windows应用程序中?

时间:2014-10-29 21:10:08

标签: javascript jquery newline

此函数从表格的一行中获取文本并显示它,以及提示中标题行中的文本,以便用户可以从提示中复制和粘贴。它可以工作,但由于某种原因,从提示中复制/粘贴时不再包含换行符。我根本没有改变这一点,今天早上工作得很好,除非我产生幻觉。

$(".display-row").on('click', function () {
    var tr = $(this).closest('tr'),
        headers = $("#index-table-headers").children(),
        displayText = "";
    tr.children().each(function (i) {
        var headerText = $(headers.get(i)).text(),
        valueText = $(this).text();
        if (headerText.trim()) { // prevents this button from being included
            displayText += headerText + ": " + valueText + "\n";
        }
    });

    window.prompt('This can be used to copy and paste the record', displayText);
});

我在其他多个Q&中看到过,在字符串后附加换行符应该允许它包含在提示中;我知道它可以工作,因为它可以提前工作。这段代码中有什么东西可以使它不起作用,或者我应该尝试寻找其他原因吗?

编辑: 我在Windows中,所以我尝试使用\ r \ n作为Justin Powell推荐。我确信\ r \ n在displayText中(我可以在打开提示符之前在firebug中看到它。)事实上,在firebug中,变量实际上扩展为多行。不幸的是,无论我尝试将其粘贴到哪个应用程序中,我仍然没有得到它们。

2 个答案:

答案 0 :(得分:2)

换行符在那里,但你看不到它(取决于你粘贴的位置)。

在Windows中,新行实际上包含回车符+换行符或\r\n。尝试使用此代替\n

答案 1 :(得分:2)

我想出来了。它显然不起作用,因为我用Firefox测试它。当我使用IE或Chrome时,它可以按照我的意图运行。 Chrome实际上会在提示中显示框字符以表示不可打印的字符。 IE没有,但显然它们仍然存在,因为当我将文本粘贴到其他应用程序时有多行。我还发现,在Javascript中使用\n\r\n似乎并不重要。它可以在Chrome和IE中使用,也可以在Firefox中使用。也许Chrome和IE将行结尾转换为Windows样式,然后在提示符中显示字符串;我不确定,但无论出于何种原因,它都有效。我现在要继续使用相同的Javascript。对于限制使用Internet Explorer的一小部分用户来说,这是一个临时修复,所以它应该适合我的目的。但是使用提示确实不是做这种事情的好方法,我不会这样做任何永久解决方案。