2014-03-19 79 views
3

我在想如果有人有任何瘋狂的方法來獲取屏幕的矩形區域的HTML。獲取矩形區域的HTML

我現在可以使用document.caretRangeFromPoint(),然後使用document.createRange(),然後document.cloneContents(),它返回HTML的document-fragment

這證明是不可靠的,可以產生意想不到的結果(基本上它是用'不可見'光標選擇文本,然後獲取所選文本的HTML;它有時可以在窗口的其他區域選擇html,或者不選擇一些元素,即使他們在我提供的邊界)

如果任何人有這樣做的任何其他方面,我很想聽聽他們

謝謝!

回答

0

只因爲你瘋了。如果您不關心響應性,可以輕鬆地繪製出您的元素並創建一系列維度。然後當你通過onmousendown繪製你的矩形onmouseup曲柄通過維數組來查看矩形是否與任何元素重疊,然後將其推送到臨時數組。臨時數組就是你將執行任何你想要的操作。希望這有助於,如果你創建一個jsfiddle我會寫出來。祝你好運!

p.s.問題在於設備速度慢,它們可能會有一些滯後,取決於頁面上有多少元素。也從表面輸入了這個名字,所以請原諒那些不太詳細的答案。

+0

有趣的想法。如果我想獲得一半和元素的內容,那麼呢?所以如果我想要的矩形區域從div的頂部開始並完成一半。 –

+0

嗯,大聲笑讓人瘋狂!我只是寫了一個類似的想法,這個想法是由@Jorg執行的,並且在這裏找到http://stackoverflow.com/questions/22800040/a-more-efficient-javascript-code-for-a-highlighting-function/22800224# 22800224。區別在於你的span標籤現在將檢查它是否適合在廣場內。考慮到工作量,這真的很瘋狂。首先收集所有可用的元素,然後查找所有改爲具有單個跨度標籤(加載時)的單詞,然後確定每個跨度標籤是否在您的方格中。這很有趣 – DrewGoldsberry

+0

如果你想我會讓jsfiddle顯示想法。但如果這只是一個心靈鍛鍊,我會讓它成爲。 :D玩得開心!我在評論中用完了空間,所以不得不再做一個D: – DrewGoldsberry

0

按下F12會彈出一個錯誤控制檯,其中會有一個圖標看起來像是一個放大鏡,如果單擊該圖標,然後單擊該頁面上的HTML元素,它會將您帶到所選區域並呈現給您代碼。