javascript比较文档位置,java和javascript获取word文档的书签位置对比

1、DOMElement.contains(DOMNode)

1.javascript:把IE浏览器的activex都开采,使用如下网页,能够看到书签顺序和地点:

javascript比较文档位置,java和javascript获取word文档的书签位置对比。Element.getBoundingClientRect()重回成分的高低及绝对于窗口的地方

本条格局初步用在 IE ,用来规定 DOM Node 是不是带有在另三个 DOM Element 中。

<html>
<head>
<script>
var word;
word = new ActiveXObject("Word.Application");
var range = word.Range;
word.Visible = true;
var path = "D:\\xxx\\xxx\\xx.doc";
word.Documents.Open(path);
for(var i=1;i<=word.ActiveDocument.Bookmarks.count;i++){
 document.write(word.ActiveDocument.Bookmarks(i).Name);
 document.write(" ");
 document.write(word.ActiveDocument.Bookmarks(i).Range.BookmarkID);
 document.write("</br>");
}
</script>
</head>
<body>
</body>
</html>

语法:

当尝试优化 CSS 采取器遍历(像:“#id1 #id2”),那一个情势很有用。你能够由此 getElementById 获得成分,然后接纳 .contains() 鲜明 #id1 实际上是不是含有 #id2。

java:用poi张开,这里用的是.doc文件,所以用旧一套poi的API,假如是docx,原理是同样的。

rectObject=object.getBoundingClientRect();

注意点:假诺 DOM Node 和 DOM Element 相一致,.contains() 将回到 true ,尽管,二个成分无法富含自身。

FileInputStream in = new FileInputStream("D:\\xxx\\xxx\\xx.doc");
HWPFDocument doc = new HWPFDocument(in);
Bookmarks bookmarks = doc.getBookmarks();
for(int i=0,j=bookmarks.getBookmarksCount();i<j;i++){
  Bookmark bookmark = bookmarks.getBookmark(i);
  System.out.println(bookmark.getName());
  System.out.println(i);
  System.out.println(bookmark.getStart());
}

再次来到值是三个DOMRect对象,即DOMRect={x:scrollLeft,y:scrollY,width:val1,height:val2,top:topPosition,left:leftPosition,bottom:bottomPosition,right:rightPosition}共8个天性。

这里有一个粗略的施行包装,能够运营在:Internet Explorer, Firefox, Opera, and Safari。

你恐怕感兴趣的稿子:

  • javascript下用ActiveXObject控件替换word书签,将内容导出到word后打字与印刷

兼容性:

function contains(a, b) {
    return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(arg) & 16);
}
2、NodeA.compareDocumentPosition(NodeB) 

[1] CSS spec for ‘use’
element 规定了用于
<use>
成分的  ‘symbol’ 元素要安装私下认可的 width 和 height 为 百分之百。spec for
width and height ‘svg’
attributes 也必要将
百分之百 作为暗中同意值。谷歌 Chrome 未有如约那么些规定。同时 Chrome
也不会将 stroke-width 插手总结。所以 Chrome 和 Firefox
浏览器的 getBoundingClientRect() 再次来到的可能是见仁见智的。

这几个方法是 DOM Level 3 specification 的一有些,允许你鲜明 2 个 DOM Node 之间的竞相地点。那些办法比 .contains() 壮大。那几个点子的八个或然使用是排序 DOM Node 成三个详细精确的一一。

[2]
在IE8可能更低浏览器版本中,getBoudingClientRect()方法再次来到的TextRectangle对象未有height和width属性。同不常间,额外的习性(包蕴height和width)也不能够增加到TextRectangle对象中去。

使用这些方法你能够规定关于一个要素地方的千家万户的音讯。全数的那个音讯将赶回贰个比特码(Bit,比特,亦称二进制位)。

[3] Gecko 1.9.1
将 width 和 height 属性加入到 DOMRect 对象中。

对此这三个,大家知之甚少。比特码是将多种数量存款和储蓄为一个粗略的数字(译者注:0 或 1)。你最后展开 / 关闭个别数据(译者注:打开/关闭对应 0 /1),将给您多个最后的结果。

从 Gecko 12.0(Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9)
伊始,总括成分的界线矩形会将 CSS
transforms 思量进去。

相关文章