gpt4 book ai didi

Javascript + 如何获取选择的父节点的索引 + IE 以外的浏览器

转载 作者:行者123 更新时间:2023-11-28 02:53:23 25 4
gpt4 key购买 nike

嗨,我想获取相对于所选文本的父节点的选择开始和结束索引。我可以在 IE 中做到这一点。然而,在其他浏览器(如 Firefox、Opera、Safari 和 Chrome)中,我能够访问所选文本的选择和索引。但我的要求是获取父节点的索引,而不是所选节点的索引。我需要一个支持所有浏览器的解决方案 - Firefox、Opera、Safari 和 Chrome

    if (window.getSelection) { 
alert("Other browser");
sel = window.getSelection();

if(sel != '') {
//alert(sel.anchorNode.parentNode.nodeName);
//alert(sel.anchorOffset);
//alert(sel.focusNode.parentNode.nodeName);
//alert(sel.focusOffset);
}
}
else if (document.selection) {
txt = document.selection.createRange().text;
var range_all = document.body.createTextRange();
if (txt!='' )
{
// Finding start position
range = document.selection.createRange();
range.collapse(true);

var startParentElement = range.parentElement();

range_all.moveToElementText(startParentElement);
for (var sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start ++)
range_all.moveStart('character', 1);
range = document.selection.createRange();
range.collapse(false);
range_all = document.body.createTextRange();

var endParentElement = range.parentElement();
range_all.moveToElementText(endParentElement);
for (var sel_end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; sel_end ++)
range_all.moveStart('character', 1);
alert("sel_start:" + sel_start);
alert("sel_end:" + sel_end);
}}

最佳答案

QuirksMode 网站可以在这里为您提供帮助:http://www.quirksmode.org/dom/range_intro.html

您只需要学习如何在 IE 以外的浏览器中使用 range 对象即可。

关于Javascript + 如何获取选择的父节点的索引 + IE 以外的浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3281305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com