1
getHTMLOfSelection: function() {
var range;
if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
// this.document.execCommand("Copy", true);
return range.htmlText;
} else if (window.getSelection) {
var selection = window.getSelection();
if (selection.rangeCount > 0) {
range = selection.getRangeAt(0);
var clonedSelection = range.cloneContents();
var div = document.createElement('div');
div.appendChild(clonedSelection);
var elms = div.querySelectorAll("*[style]");
Array.prototype.forEach.call(elms, function(elm) {
var clr = elm.style.display || "";
if (clr === 'none') {
elm.innerText = '';
}
});
return div.innerHTML;
} else {
return '';
}
} else {
return '';
}
}
這是我的代碼,但是當CSS相對於寫入class,id
如display:none
,visiblity:hidden
和height:0
它不在的情況下工作。如何抓取只有可見的HTML沒有CSS?
你能解釋一下什麼是在對於'那些東西是不工作?什麼是實際行爲,你期望什麼? – GolezTrol
感謝您的回覆, 使用上述功能,我能夠抓住innerHTML,但問題是,抓住所有的HTML包括隱藏的功能,意味着那些使用CSS隱藏像(display:none ,可見性:隱藏和高度:0)。我不希望這些隱藏的HTML –
'elm.style'會給你使用JavaScript或'style'屬性設置的特定元素的樣式。 使用['window.getComputedStyle'](https://developer.mozilla.org/nl/docs/Web/API/Window/getComputedStyle)獲取該元素的計算樣式。這應該讓你跳過隱藏的元素。 – GolezTrol