Javascript 使用pdf.js呈现pdf时,如何重新设置单词的样式?
当我使用pdf.js运行pdf时,我希望能够重新设置一些单词的样式(例如突出显示),这可能吗?是的,在使用pdf.js时可以突出显示单词 作为一个页面包含Javascript 使用pdf.js呈现pdf时,如何重新设置单词的样式?,javascript,pdf,pdf.js,Javascript,Pdf,Pdf.js,当我使用pdf.js运行pdf时,我希望能够重新设置一些单词的样式(例如突出显示),这可能吗?是的,在使用pdf.js时可以突出显示单词 作为一个页面包含 画布(用于渲染内容) HtmlLevel(用于未呈现的文本内容) 您可以使用后者来选择文本元素 访问浏览器上的,您可以通过document.getSelection()获取选择 以下代码演示了如果所选文本(内部)不跨多个HTMLElement时如何执行此操作: var s = document.getSelection(); var o
- 画布(用于渲染内容)
- HtmlLevel(用于未呈现的文本内容)
document.getSelection()
获取选择
以下代码演示了如果所选文本(内部)不跨多个HTMLElement时如何执行此操作:
var s = document.getSelection();
var oldstr = s.anchorNode.textContent;
var textBeforeSelection = oldstr.substr(0, s.anchorOffset);
var textInsideSelection = oldstr.substr(s.anchorOffset, s.focusOffset - s.anchorOffset);
var textAfterSelection = oldstr.substr(s.focusOffset, oldstr.length - s.focusOffset);
foo.anchorNode.parentElement.innerHTML
= textBeforeSelection
+ "<span class='highlight'>"
+ textInsideSelection
+ "</span>"
+ textAfterSelection;
var s=document.getSelection();
var oldstr=s.anchorNode.textContent;
var textBeforeSelection=oldstr.substr(0,s.AnchoroOffset);
var textInsideSelection=oldstr.substr(s.AnchoroOffset,s.focusOffset-s.AnchoroOffset);
var textAfterSelection=oldstr.substr(s.focusOffset,oldstr.length-s.focusOffset);
foo.anchorNode.parentElement.innerHTML
=选择前的文本
+ ""
+文本内部选择
+ ""
+选举后的选举;
对于跨越多个(内部)HTMLElement的选择,您可以通过依次调用nextSibling
直到到达s.focusNode
来从s.anchorNode
开始遍历DOM
我说可能,因为元素在文档中的位置顺序与它们在视图中的顺序不同
假设s.anchorNode
不是s.focusNode
将从0突出显示到s.anchorNode
s.anchorOffset
从s.focusNode
到节点和s.focusOffset
- 它们之间的所有节点都可以完全高亮显示