此函数从表格的一行中获取文本并显示它,以及提示中标题行中的文本,以便用户可以从提示中复制和粘贴。它可以工作,但由于某种原因,从提示中复制/粘贴时不再包含换行符。我根本没有改变这一点,今天早上工作得很好,除非我产生幻觉。
$(".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中,变量实际上扩展为多行。不幸的是,无论我尝试将其粘贴到哪个应用程序中,我仍然没有得到它们。
答案 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的一小部分用户来说,这是一个临时修复,所以它应该适合我的目的。但是使用提示确实不是做这种事情的好方法,我不会这样做任何永久解决方案。