gpt4 book ai didi

javascript - Html 和 Internet Explorer : How to avoid hidden elements to be copied/pasted

转载 作者:行者123 更新时间:2023-11-28 01:47:47 26 4
gpt4 key购买 nike

我在 HTML5 文档中有一个表格。

我有一个隐藏/显示某些行的 View 选择器,使用 jQuery hide()show()

当用户选择表格(以编程方式,使用“全选”按钮,代码见下文),然后将其复制/粘贴到 Word 或 Outlook 电子邮件中时,行为不同于 FF 和 IE。

  • FF:不复制 style='display: none;' 的元素。这是期望和预期的行为
  • IE:复制所有内容,然后粘贴所有内容,这样我的视觉“技巧”对 IE 用户就没用了。

我添加了我的 selectAll 函数。只需期待一个选择器并选择其中的所有文本。这是我从 jQuery 论坛复制/粘贴的内容。

jQuery.fn.selectText = function(){
var doc = document;
var element = this[0];
// console.log(this, element);
if (typeof element == 'undefined') {
return;
}
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};

如何只选择可见元素?或者...还有其他 html/js 技巧吗?

顺便说一句 无论谁提议,我都会投反对票:

  • 改变用户

  • 强制用户更换浏览器

  • 让我只渲染可见单元格并更改服务器代码

最佳答案

这个问题好像被问过很多次了。 (1) - ( 2 )

似乎还没有适合所有人的响应。

你可以使用 is.(':visible')在 jQuery 中,但不确定是否会转换回 javascript(不是很擅长)。

其他人建议克隆表格,只复制隐藏的另一个表格中的内容,但这会在以后使用其他浏览器时产生问题,但可以正常工作。

您可以使用上述可行的方法,但这是一个令人讨厌的 hack。

有答案here您可能对此感兴趣,但我不确定您要复制的是什么以及这是否值得付出努力。

<joke>

如果一切都失败了,这里有一些其他的建议:

  • 改变用户

  • 强制用户更换浏览器

  • 仅呈现可见单元格并更改服务器代码

</joke>

关于javascript - Html 和 Internet Explorer : How to avoid hidden elements to be copied/pasted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601549/

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