C# BHO如何替换javascript事件处理程序结果?
因为拖动超链接中的图像,无法获取“FileDrop”或“DIB”数据,所以我想使用C#编写一个BHO来增强拖放图像 我已经在文档中注入了dragstart事件,它工作正常,但是: 如果javascript设置了如下ondragstart事件处理程序:C# BHO如何替换javascript事件处理程序结果?,c#,javascript,event-handling,bho,C#,Javascript,Event Handling,Bho,因为拖动超链接中的图像,无法获取“FileDrop”或“DIB”数据,所以我想使用C#编写一个BHO来增强拖放图像 我已经在文档中注入了dragstart事件,它工作正常,但是: 如果javascript设置了如下ondragstart事件处理程序: <script> ondragstart = function(){ var obj = event.srcElement; if(obj.tagName == "A"){ event.dataTransfer.setD
<script>
ondragstart = function(){
var obj = event.srcElement;
if(obj.tagName == "A"){
event.dataTransfer.setData("text", "TTTTTTTTTTTTTTT");
}
window.document.title = event.srcElement.tagName;
}
document.attachEvent("ondragstart", ondragstart);
</script>
最后的结果是:ttttttttttttt
在调试器中,我可以看到在javascript事件处理程序之前调用BHO ondragstart事件处理程序
那么,在javascript事件处理程序之后是否还有调用BHO事件处理程序的方法
我为我的英语感到抱歉。
请帮忙。谢谢。我找到了一个解决方案:
在BHO事件处理程序中,添加以下代码:
(eventObj作为IHTMLEventObj)。cancelBubble=true
这个问题困扰了我一整天我正试图做一些与你类似的事情-你能给我发送一些示例代码吗?我是BHOs的新手,不知道如何连接到internet explorer拖放事件。
...
if (!string.IsNullOrWhiteSpace(src))
{
try
{
var info = WinInetAPI.GetUrlCacheEntryInfo(src);
src = info.lpszLocalFileName;
}
catch
{
}
eventObj.dataTransfer.setData("Text", src);
}
...