[英]document.execCommand ..SaveAs issue with hidden elements.,
document.execCommand('SaveAs',false,'fileName'+“ .txt”);
我正在嘗試使用javascript中的上述命令將頁面保存到文件中。
問題:頁面上有一些隱藏元素。CSS樣式[display:none],因此當我嘗試使用上述命令保存頁面內容時,它也會寫隱藏元素的內容。
任何想法如何擺脫隱藏元素的內容。 我們是否可以傳遞其他任何參數,以告知不要保存隱藏元素的內容,
任何幫助表示贊賞。
PS:我不想從DOM中刪除隱藏的元素內容。 這不是一個選擇。
謝謝,本
有人有其他答案嗎?
這是我想出的
克隆文檔,然后刪除所有類名稱都指定為隱藏或不想保存的內容的節點。 在我的情況下,我使用了類名“ 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]);
}
}
}
未經測試...但我唯一的想法是:
但這似乎是一件很艱苦的工作……“刪除”此隱藏內容的原因是什么? 也許我們可以提供更好的解決方案?
例如,如果這是出於“安全性”,以確保用戶看不到不應看到的內容,那么這是一種不好的方法……最好不要首先呈現內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.