社区
HTML/XML
帖子详情
有沒有 nodeFromPoint?
KFC123
2009-03-20 01:58:21
對 HTMLElement, 有 elementFromPoint 可以找出當前點下的 element,但這個elementFromPoint衹能返回非 Text 元素,我想的是返回當前點的 node,如果當前的是 Text 則返回 Text node, 但怎麼沒有 nodeFromPoint 之類的用法?怎樣可以找出當前光標下的 node?
...全文
84
12
打赏
收藏
有沒有 nodeFromPoint?
對 HTMLElement, 有 elementFromPoint 可以找出當前點下的 element,但這個elementFromPoint衹能返回非 Text 元素,我想的是返回當前點的 node,如果當前的是 Text 則返回 Text node, 但怎麼沒有 nodeFromPoint 之類的用法?怎樣可以找出當前光標下的 node?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
会思考的草
2009-03-25
打赏
举报
回复
通过elementFromPoint取得IHTMLElement之后,query IHTMLDOMNode。
要判断是否有text也很简单,如果当前的element不是text,接着枚举其child element即可。
KFC123
2009-03-25
打赏
举报
回复
好的,謝謝。但即使可以判斷它是否text,你怎樣可以取得它對應的 node?
KFC123
2009-03-25
打赏
举报
回复
[Quote=引用 11 楼 codewarrior 的回复:]
通过elementFromPoint取得IHTMLElement之后,query IHTMLDOMNode。
要判断是否有text也很简单,如果当前的element不是text,接着枚举其child element即可。
[/Quote]
query IHTMLDOMNode 衹能用在非 text 節點上,在 text 上用它衹會返回 父類的節點。
你說的 enumerate 的方法我也試過,但有很多情況下一個父元素可以有很多的 textnode,而每個 textnode 上的文字可以完全相同,即使通過txtrange 找到了 text,但如果多個 textnode 都含同一段文字,你怎樣判斷哪一個才是當前的?
e7844
2009-03-24
打赏
举报
回复
pSelection->createRange(&pDispRange);
if (pDispRange)
如果pDispRange查询不到txtRange那就说明它是非txt元素
否则是是txt
KFC123
2009-03-24
打赏
举报
回复
我是說沒有一個元素對應 Text,如果你用 elementFromPoint 來讀取當前元素,即使它是 text ,也衹會返回 parent,而不會返回一個代表這個 text 的元素。所以你說 "非 Text 元素不是Text 元素 Text 元素不是非 Text 元素"要成立,那起碼要能找到一個判斷它是不是text元素的方法吧。
e7844
2009-03-23
打赏
举报
回复
既然没有Text 元素,那你为什么要找node
KFC123
2009-03-23
打赏
举报
回复
好,謝謝。我不明白你的提示,我查遍了MSDN,找不到接口可以判斷text元素的,text 本身就不是元素!不想再玩競猜游戲,我用我自己的笨辦法算了,雖然麻煩一點,但起碼可行。anyway, 謝謝。
e7844
2009-03-22
打赏
举报
回复
非 Text 元素不是Text 元素
Text 元素不是非 Text 元素
判断一下
e7844
2009-03-22
打赏
举报
回复
复合去用
KFC123
2009-03-22
打赏
举报
回复
謝謝,但這段代碼無法取得 node 啊。請問你是用甚麼來 QueryInterface node? 用 IHTMLSelectionObject 嗎?但我試過,IHTMLSelectionObject Query 不了 node
[Quote=引用 2 楼 e7844 的回复:]
我在網上找到這一段代碼,用來改變當前光標位置
HRESULT hr;
CComPtr <IHTMLTxtRange> txtRange;
CComPtr <IHTMLSelectionObject> pSelection;
spDoc->get_selection(&pSelection);
if (pSelection)
{
QueryInterface node
/*
CComPtr <IDispatch> pDispRange;
pSelection->createRange(&pDispRange);
if (pDispRange)
{
hr = pDispRange->QueryInterface(IID_IHTMLTxtRange, (void**)…
[/Quote]
e7844
2009-03-21
打赏
举报
回复
我在網上找到這一段代碼,用來改變當前光標位置
HRESULT hr;
CComPtr <IHTMLTxtRange> txtRange;
CComPtr <IHTMLSelectionObject> pSelection;
spDoc->get_selection(&pSelection);
if (pSelection)
{
QueryInterface node
/*
CComPtr <IDispatch> pDispRange;
pSelection->createRange(&pDispRange);
if (pDispRange)
{
hr = pDispRange->QueryInterface(IID_IHTMLTxtRange, (void**)&txtRange);
if ( SUCCEEDED(hr) && txtRange )
{
txtRange->collapse(VARIANT_TRUE);
if (pElem)
{
if (SUCCEEDED(txtRange->moveToElementText(pElem)))
{
txtRange->select();
txtRange->scrollIntoView();
}
}
txtRange.Release();
}
pDispRange.Release();
*/
}
pSelection.Release();
}
KFC123
2009-03-21
打赏
举报
回复
沒有人知道嗎?
<div>
<div>
...
</div>
xxxx
</div>
如果我的光標在 xxxx 上,取 elementFromPoint 給出的是最外面的div elemnt,但我需要的是 xxxx 這個 TextNode (我不要文字本身,我要的是 node),但我搜遍了,沒有找到能讀取當前 node 的方法。請大家幫幫忙
node
-v12.16.3-x86.msi
Node
.js,简称
Node
,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。
Node
.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。
Node
.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,
Node
.js使用了模块化的架构,通过npm(
Node
package manager,
Node
包管理器),社区成员可以共享和复用代码,极大地促进了
Node
.js生态系统的发展和扩张。
Node
.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。
Node
.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用
Node
.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用
Node
.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
云计算基础课件—架构dr.pptx
云计算基础课件—架构dr.pptx
067ssm-jsp-mysql艺诚美业管理系统.zip(可运行源码+数据库文件+文档)
L文主要是对艺诚美业管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对艺诚美业管理系统进行了一些具体测试。 本文以JSP为开发技术,实现了一个艺诚美业管理系统。艺诚美业管理系统的主要使用者分为管理员;个人中心、会员管理、员工管理、员工打卡管理、技师预约管理、发型美容师管理、技师类型管理、套餐信息管理、套餐类型管理、套餐购买管理、会员充值管理、系统管理,员工;个人中心、员工打卡管理、技师预约管理,会员;个人中心、技师预约管理、套餐购买管理、会员充值管理,前台首页;首页、发型美容师、套餐信息、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个艺诚美业管理系统的过程。 具体在系统设计上,采用了B/S的结构,同时,也使用JSP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的艺诚美业管理系统。 关键词 :艺诚美业管理系统;JSP技术;Mysql数据库;B/S结构
【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar
【微信小程序毕业设计】外卖点餐系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:242】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 有管理员,外卖员,餐厅,用户共四个角色。管理员功能有个人中心,外卖员管理,餐厅管理,用户管理,菜品分类管理,菜品信息管理,外卖订单管理,订单配送管理,订单评价管理,在线留言管理,系统管理等。外卖员,餐厅,用户都可以在微信小程序上面进行注册和登录操作。餐厅角色可以在微信小程序上面进行菜品的添加,修改,删除,查询操作,可以对用户的订单进行审核操作,查看订单配送状态和评价,可以查看投诉反馈和在线留言等。外卖员角色可以在微信小程序上面进行订单的抢单操作,查看订单配送和评价信息等。 用户角色可以在微信小程序上面进行菜品的查看和查询,对自己下的订单进行支付操作,查看订单配送和对订单评价,收藏菜品等操作。
oplog4j是java项目生成操作日志的工具,兼容spring(高分项目).zip
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程
HTML/XML
3,055
社区成员
8,066
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章