Javascript document.execCommand..存在隐藏元素的另存为问题。,
document.execCommand('SaveAs',false,'fileName'+“.txt”) 我正试图使用javascript中的上述命令将页面保存在一个文件中 问题:我在页面上有一些隐藏元素..CSS Style[display:none],因此当我尝试使用上述命令保存页面内容时,它也会写入隐藏元素内容 任何关于如何去除隐藏元素内容的想法。我们是否可以传递任何其他参数,告诉您不要保存隐藏的元素内容 感谢您的帮助 PS:我不想从DOM中删除隐藏的元素内容。这不是一个选择 谢谢, 本Javascript document.execCommand..存在隐藏元素的另存为问题。,,javascript,css,Javascript,Css,document.execCommand('SaveAs',false,'fileName'+“.txt”) 我正试图使用javascript中的上述命令将页面保存在一个文件中 问题:我在页面上有一些隐藏元素..CSS Style[display:none],因此当我尝试使用上述命令保存页面内容时,它也会写入隐藏元素内容 任何关于如何去除隐藏元素内容的想法。我们是否可以传递任何其他参数,告诉您不要保存隐藏的元素内容 感谢您的帮助 PS:我不想从DOM中删除隐藏的元素内容。这不是一个选择 谢谢,
有人有其他答案吗..未经测试。。。但我唯一的想法是:
- 结束通话李>
- 使用整个DOM的“纯”副本保存变量
- 去掉隐藏的元素,例如设置了display:none的removeChild()
- 执行保存
- 将DOM重置为原始状态
e、 如果这是为了“安全”,以确保用户不会看到他们不应该看到的东西,那么这是一个糟糕的方法。。。最好一开始就不要渲染内容。以下是我的想法 克隆文档,然后删除所有具有指定为隐藏的类名或不希望保存的内容的节点。在我的例子中,我使用了类名“hidden”。removeElementsByClass遍历克隆的文档并删除所有坏节点。现在在对象newDoc上运行exec,保存这个克隆的和简化的文档
var newDoc = document.getElementsByTagName("html")[0].cloneNode(true);
removeElementsByClass(newDoc, 'hidden');
newDoc.execCommand('SaveAs', false,'fileName' + ".txt");
function removeElementsByClass(object, class)
{
var elementArray = [];
if (object.all)
{
elementArray = object.all;
}
else
{
elementArray = object.getElementsByTagName("*");
}
var matchedArray = [];
var pattern = new RegExp("(^| )" + class + "( |$)");
for (var i = 0; i < elementArray.length; i++)
{
if (pattern.test(elementArray[i].className))
{
elementArray[i].parentNode.removeChild(elementArray[i]);
}
}
}
var newDoc=document.getElementsByTagName(“html”)[0].cloneNode(true);
removeElementsByClass(newDoc,“隐藏”);
execCommand('SaveAs',false,'fileName'+“.txt”);
函数removeElementsByClass(对象,类)
{
var elementArray=[];
if(object.all)
{
elementArray=object.all;
}
其他的
{
elementArray=object.getElementsByTagName(“*”);
}
var matchedaray=[];
var模式=新的RegExp(“(^ |”)”+类+“(|$)”;
for(var i=0;i
css规则是内联的还是由class/id属性设置的?示例代码会有所帮助。这是在某些内部IE专用环境中吗?普通的JavaScript不应该让开发者对最终用户的PC进行这种访问/控制。@scunlife:是的,这只适用于IE。我同意存在一些安全问题,但现在不担心这个问题@伊恩:我觉得这不重要。它是内联的,但我可以把它改成类。从你需要一种标准化的方法来处理这个问题的观点来看,这很重要:)它的内联。。但是可以把它变成一个好的用户体验。理想情况下,用户应该保存页面上显示的内容,而不是隐藏的内容。这是一个有效的方案。