【发布时间】:2014-03-03 07:38:28
【问题描述】:
我有一个表格,在 HTML5 文档中。
我有一个视图选择器,它使用 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 ! :)
-
我只是在开玩笑,我真的在寻找一个真正有用的答案!如果我打算不提供帮助,就不会是个聪明人了!
-
是的,我知道。所以我很反常地回答。我认为我的“:)”足以让你明白我在笑
-
如何调用函数
selectText()?当你调用它时,过滤元素使用:visible,例如$('input:visible').selectText() -
我正在使用
$('DIV.exportable_area').selectText()。您的建议没有考虑隐藏子元素的问题。这是问题的核心。不过还是谢谢!
标签: javascript jquery html css internet-explorer