在JavaScript中构建IntelliSense/AutoComplete
我目前为Firefox维护了一个插件,它为一个论坛网站添加了许多功能,该网站实现了自己的标记语言,类似于stackoverflow提供的“Markdown” 我已经为这个插件构建了一个IntelliSense函数,它类似于VisualStudio,在文本区域中键入这个标记时会弹出一个自动建议。例如: 实现中最困难的事情是在文本区域中找到按键的(x,y)坐标,这样我就可以在离它很近的地方弹出IntelliSense窗口。JavaScript中的按键事件不公开这些坐标,所以我不得不解决这个问题。不幸的是,我只能找到一种跨浏览器兼容的方式来获取y坐标,而不是x坐标。此代码位于_getPopupPoint函数中 这适用于Firefox,因为我使用了一些Mozilla的XPCOM接口来获取坐标。因此,虽然这适用于Firefox,但现在我想将我的插件移植到Google Chrome,我找不到一种获取坐标的方法 所以我的问题有两个: (1) 有没有更好的方法来获取按键的x坐标?在JavaScript中构建IntelliSense/AutoComplete,javascript,autocomplete,google-chrome,intellisense,firefox-addon,Javascript,Autocomplete,Google Chrome,Intellisense,Firefox Addon,我目前为Firefox维护了一个插件,它为一个论坛网站添加了许多功能,该网站实现了自己的标记语言,类似于stackoverflow提供的“Markdown” 我已经为这个插件构建了一个IntelliSense函数,它类似于VisualStudio,在文本区域中键入这个标记时会弹出一个自动建议。例如: 实现中最困难的事情是在文本区域中找到按键的(x,y)坐标,这样我就可以在离它很近的地方弹出IntelliSense窗口。JavaScript中的按键事件不公开这些坐标,所以我不得不解决这个问题。不
(2) 如果没有,我可以在Google Chrome插件的上下文中做些什么来获取相同的数据吗?检查的实现可能会很有趣 Dojo为事件对象提供以下属性:
- event.target—生成事件的元素
- event.currentTarget-当前目标
- event.layerX-相对于event.currentTarget的x坐标
- event.layerY-相对于event.currentTarget的y坐标
- event.pageX-相对于视图端口的x坐标
- event.pageY-相对于视图端口的y坐标
- event.relatedTarget-对于onmouseover和onmouseout,鼠标指针移动到或移出的对象
- event.charCode-对于按键事件,按键的字符代码
- event.keyCode-对于按键事件,处理诸如ENTER和空格键之类的特殊键
- event.charOrCode-charCode和keyCode的规范化版本,可用于直接比较alpha键和特殊键。(在1.1中添加)