selectNode() 在 IE8 中不起作用

发布于 2024-10-20 19:07:08 字数 250 浏览 4 评论 0原文

我需要在微型 mce 中选择一个节点,我正在尝试以下代码。它可以在非 IE 浏览器中工作,但在 IE 上会出现错误 - 错误:对象不支持此属性或方法

代码 -

              rng = ed.selection.getRng();
              rng.selectNode(tn);

第二行导致错误。还有其他 IE 兼容的方法吗?

I need to select a node in tiny mce, I'm trying following code. It works in non-IE browsers, but on IE it gives error as -
Error: Object doesn't support this property or method

Code -

              rng = ed.selection.getRng();
              rng.selectNode(tn);

The second line causes the error. Is there any other IE compatible method for this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

维持三分热 2024-10-27 19:07:08

其原因是您获得的范围对象不同。在 FF 中,您将获得一个对象,该对象为您提供多种功能,例如 selectNode()。 IE 范围仅向您提供一个仅包含属性的 textrange 对象。

解决这个问题的方法很简单:

// true is important here - causes getRng to return a DOM Range and not a text range (IE)
rng = ed.selection.getRng(true);
rng.selectNode(tn);

The reason for this is the different range object you get. In FF you get an object which offers you several functions like selectNode(). The IE range only presents you a textrange object which contains only properties.

The solution to this is easy:

// true is important here - causes getRng to return a DOM Range and not a text range (IE)
rng = ed.selection.getRng(true);
rng.selectNode(tn);
一杯敬自由 2024-10-27 19:07:08

我阅读了有关 TextRange 对象的内容,并且能够实现我的预期。我想将光标设置在跨度内。我可以使用 TextRange 对象属性和方法来完成此操作,如下所示 -

range.moveToElementText (node); //node is  the span in which I wanted to place my cursor
range.select ();

moveToElementText - 将当前 TextRange 对象的起点和终点与指定元素的文本内容对齐。我加了一个nbsp;到跨度并用上面的代码可以用我的插入符号替换它。

I read about TextRange object and was able to do what I intended. I wanted to set my cursor inside a span. I could do it using TextRange object properties and methods as follows -

range.moveToElementText (node); //node is  the span in which I wanted to place my cursor
range.select ();

moveToElementText - Aligns the start and end points of the current TextRange object to the text content of the specified element. I added an nbsp; to the span and with the above code could replace it, by my caret.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文