拖动网页内容到编辑框的问题【已解决】
本帖最后由 gto250 于 2013-9-9 23:30 编辑选择网页中的一段内容,拖曳到编辑框中。
au3的Input和EDIT都不能实现,RichEdit能实现,但是RichEdit不能控制获取的文字格式。
选择网页中的一段内容并复制的话,可以在剪贴板中获取到该段网页内容的html源码。
但是直接将该段内容拖到RichEdit中的话,剪贴板中的内容是空的。
我现在想要做的就是,在将网页中选择的内容拖到input或者edit或者RichEdit中的时候,获取到该段网页内容的html源码。
有谁能给个源码,或者告知网页中的内容拖曳到RichEdit中的时候,是怎么获取文字内容的! 可以同步捕获onDragStart事件,写了个代码,关于如何响应拖拽事件还得楼主自行解决(示例中直接定时器代替),CF_HTML剪切板数据格式化也没搞太明白,还是得楼主自行解决, 哈哈#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#Include <Clipboard.au3>
#include <IE.au3>
Global $oIE = _IECreate("www.baidu.com")
$Form1 = GUICreate("", 300, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 300, 200)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState(@SW_SHOW)
WinSetOnTop($Form1, "", 1)
Local $sJS_GetText = "var oRange = document.selection.createRange(); var sText = oRange.text; window.clipboardData.setData('text', sText); "
_IEHeadInsertEventScript($oIE, "document", "ondragstart", $sJS_GetText)
Local $iFormat = $CF_UNICODETEXT
;Local $sJS_GetHtml = "var oRange = document.selection.createRange(); var sText = oRange.htmltext; window.clipboardData.setData('text', sText); "
;_IEHeadInsertEventScript($oIE, "document", "ondragstart", $sJS_GetHtml)
;Local $iFormat = _ClipBoard_RegisterFormat("HTML Format");CF_HTML
AdlibRegister("_setText", 500)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_IEQuit($oIE)
Exit
EndSwitch
WEnd
Func _setText()
_ClipBoard_Open(0)
GUICtrlSetData($Edit1, _ClipBoard_GetData($iFormat))
_ClipBoard_Close()
EndFunc 回复 2# komaau3
谢谢兄弟的协助!
我现在在考虑的就是响应拖曳的事件 这一块还是可以学习,不过我有点怀疑拖曳的文字是否准确的问题。 已经解决,官网有个DragDropEvent
那个可以用!
修改一下就能获取网页源码 学习了,,
页:
[1]