我有一个表格,在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>

10-06 07:42
查看更多