我使用鼠标在html页面(在firefox中打开)选择一些文本,并使用javascript函数,我创建/获取与所选文本对应的rangeobject.
userSelection =window.getSelection();
var rangeObject = getRangeObject(userSelection);
Run Code Online (Sandbox Code Playgroud)
现在我想突出显示rangeobject下的所有文本.我这样做,
var span = document.createElement("span");
rangeObject.surroundContents(span);
span.style.backgroundColor = "yellow";
Run Code Online (Sandbox Code Playgroud)
好吧,这个工作正常,只有当rangeobject(起始点和端点)位于同一个textnode中时,它才会突出显示相应的text.Ex
<p>In this case,the text selected will be highlighted properly,
because the selected text lies under a single textnode</p>
Run Code Online (Sandbox Code Playgroud)
但是如果rangeobject覆盖了多个textnode,那么它就不能正常工作,它只突出显示位于第一个textnode中的文本,Ex
<p><h3>In this case</h3>, only the text inside the header(h3)
will be highlighted, not any text outside the header</p>
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么做,所有在rangeobject下的文本,突出显示,独立于范围是在单个节点还是多个节点?谢谢....
知道如何在epub阅读器中实现"分页符"吗?.epub只是HTML页面,epub阅读器呈现这些html页面.但我想知道像Adobe Digital Edition这样的一些epub读者是如何实现分页的.在那里,当我们跳转到任何页面时,您将找不到一半显示的行(即只有字母的上半部分可见,下半部分将在下一页中)或半图像,而下一页中的另一部分.如果我无法在当前页面中完全显示该行,如何将该行推送到下一页?
有没有写一个办法C节目说转换Dollar到Indian Rupee(或反之亦然).转换参数应该不被硬编码而是动态的.更珍贵的是它应该自动获得Rupeevs 的最新价值Dollar(来自互联网)?
我正在使用WebKit来呈现我的HTML页面.现在,假设我正在浏览页面,我在阅读时选择了一些文本,并希望在本地文件系统上保存/写下所选文本.有没有办法使用WebKit访问(读/写)本地文件系统?
在Firefox的情况下,我可以使用XPCOM,nsiFile访问本地文件.任何人都可以建议我用WebKit做同样的事情吗?
我能够突出显示HTML页面上的文本(通过gtkmozembed呈现),如下所示.
var range, sel;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt) {
range = sel.getRangeAt(0);
}
document.designMode = "on";
if (range) {
sel.removeAllRanges();
sel.addRange(range);
}
document.execCommand("HiliteColor", false, colour);
document.designMode = "off";
}
Run Code Online (Sandbox Code Playgroud)
好吧,它工作得很好.现在我正在尝试存储有关突出显示文本的信息(startNode,startOffset,endNode,endOffset),下次当我打开同一页面时,突出显示相同的文本.我能够成功存储信息并在同一页面打开时检索它们.我试图使用以下代码突出显示文本.
var range = document.createRange();
range.setStart(startNode, startOffset);
range.setEnd(endNode, endOffset);
document.designMode = "on";
range.execCommand("HiliteColor", false, colour);
document.designMode = "off";
Run Code Online (Sandbox Code Playgroud)
但它并没有像我期待的那样发挥作用.任何人都可以帮助我达到要求吗?谢谢...
javascript ×4
dom ×2
jquery ×2
c ×1
filesystems ×1
gecko ×1
highlight ×1
html ×1
mozilla ×1
range ×1
web ×1
web-services ×1
webkit ×1
webserver ×1
xml ×1