小编gan*_*ati的帖子

如何突出显示DOM Range对象的文本?

我使用鼠标在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下的文本,突出显示,独立于范围是在单个节点还是多个节点?谢谢....

javascript dom range highlight

15
推荐指数
2
解决办法
1万
查看次数

如何在epub阅读器中实现"分页符"

知道如何在epub阅读器中实现"分页符"吗?.epub只是HTML页面,epub阅读器呈现这些html页面.但我想知道像Adobe Digital Edition这样的一些epub读者是如何实现分页的.在那里,当我们跳转到任何页面时,您将找不到一半显示的行(即只有字母的上半部分可见,下半部分将在下一页中)或半图像,而下一页中的另一部分.如果我无法在当前页面中完全显示该行,如何将该行推送到下一页?

html javascript jquery

11
推荐指数
2
解决办法
8621
查看次数

C程序将美元兑换成卢比

有没有写一个办法C节目说转换DollarIndian Rupee(或反之亦然).转换参数应该被硬编码而是动态的.更珍贵的是它应该自动获得Rupeevs 的最新价值Dollar(来自互联网)?

c xml webserver web-services web

6
推荐指数
1
解决办法
2805
查看次数

如何使用JavaScript从WebKit浏览器访问本地文件系统?

我正在使用WebKit来呈现我的HTML页面.现在,假设我正在浏览页面,我在阅读时选择了一些文本,并希望在本地文件系统上保存/写下所选文本.有没有办法使用WebKit访问(读/写)本地文件系统?

在Firefox的情况下,我可以使用XPCOM,nsiFile访问本地文件.任何人都可以建议我用WebKit做同样的事情吗?

javascript filesystems webkit

6
推荐指数
1
解决办法
2757
查看次数

突出显示DOM范围元素的文本,

我能够突出显示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 jquery dom gecko mozilla

2
推荐指数
1
解决办法
7783
查看次数

标签 统计

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