我有一个表格,在HTML5文档中。
我有一个视图选择器,它使用jQueryhide()
和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)
似乎还没有一个对每个人都有效的回应。
您可以在jQuery中使用is.(':visible')
,但不确定它是否能转换回javascript(不太擅长它)。
其他人建议克隆表,只复制隐藏在另一个表中的内容,但这会导致以后其他运行良好的浏览器出现问题。
你可以使用上面的方法,但这是一个讨厌的黑客。
有一个答案可能会引起你的兴趣,但是我不确定你想复制什么,这是否值得。<joke>
如果所有这些都失败了,下面是一些其他建议:
更改用户
强制用户更改浏览器
仅呈现可见单元格并更改服务器代码</joke>