【WPS JSAPI加载项】判断两个书签的位置关系
案例需求:
判断两个书签的位置关系
![在这里插入图片描述](https://img-blog.csdnimg.cn/d30450df50874494b97c00e628e83a1c.png)
代码流程
1. 获取两个书签的Range对象,以及Start和End(开始位置和结束位置)
2. 对比位置关系,返回相应结果 (-1相离,0相邻,1相交)
3. 开发者可自定义“重叠”等位置关系,判断逻辑合理即可
代码实现
function checkPosition(book1, book2) {
if (!book1 || !book2) return null
let app = wps.WpsApplication()
let doc = app.ActiveDocument
let books = doc.Bookmarks
book1 = typeof (book1) == 'string' ? books.Item(book1) : book1
book2 = typeof (book2) == 'string' ? books.Item(book2) : book2
let start1, start2, end1, end2
start1 = book1.Range.Start
start2 = book2.Range.Start
end1 = book1.Range.End
end2 = book2.Range.End
if (start1 == end2 || start2 == end1) {
return 0
} else if (
(start1 > start2 && start1 < end2) || (end1 > start2 && end1 < end2) ||
(start2 > start1 && start2 < end1) || (end2 > start1 && end2 < end1)
) {
return 1
} else
return -1
}
checkPosition("book1", "book2")