2014-03-19 56 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元素,它会将您带到所选区域并呈现给您代码。