Tag: 事件

Windows窗体中事件“Form.Load”,“Form.Shown”和“Form.Activated”的顺序

Form.Load , Form.Shown和Form.Activated事件之间有什么区别? 他们被解雇的顺序是什么?

如何在jQuery中处理input type = file的onchange事件?

代码是: <input ID="fileUpload1" runat="server" type="file" 以下工作正常: <input onchange="javascript:alert('hola');" ID="fileUpload1" runat="server" type="file" 我想使用jQuery得到这个结果,但是这不起作用: $('#fileUpload1').change(function (e) { alert("hola"); }); 我错过了什么? (编辑:是的,我错过了包括* .js文件。)

如何解决IE11的localStorage事件两次或根本不在iframe中?

我猜这是一个错误,但我一直没有find任何关于这个问题的讨论。 众所周知,IE10将(针对spec)本地触发存储事件(即在触发事件的同一全局执行环境中),但是IE11似乎更偏离规范( http://www.w3.org / TR / webstorage / ),当涉及到同域的iframes: 如果iframeembedded在触发存储事件的页面中,则该事件将在该iframe内触发TWICE。 如果iframeembedded在与触发存储事件的页面不同的页面中,则该事件在该iframe内根本不会触发。 如果事件是由iframe触发的 ,则会在本地触发TWICE,并在同一页面中embedded的任何其他iframe中触发TWICE,但在其他页面的iframe中触发。 您可以通过在两个单独的选项卡中打开以下链接来进行testing: http : //hansifer.com/main.html 任何人都有这个奇怪的见解吗? 最后testing版本: IE v11.0.9600.16476 (更新2016-08-13:显然它是相关的“更新版本”,而不是IE的“关于”对话框中报告的“版本”) 链接到错误报告: https : //connect.microsoft.com/IE/feedback/details/811546/ie11-localstorage-events-fire-twice-or-not-at-all-in-iframes 更新2015-10-26 我只是注意到,这似乎是固定在v11.0.9600.18059,虽然我不知道什么时候修复下降,因为它似乎没有在任何最近的KB引用。 不幸的是,IE11 localStorage事件在其他方面仍然存在exception(尽pipe这些是与本文中提出的问题分开的): IE在触发事件的localStorage设置或移除的窗口上下文中引发localStorage事件。 localStorage事件只能在相同来源的外部窗口上下文中引发。 (更新:在EdgeHTML 13.10586中工作) 当存储项被添加/删除时,IE对e.oldValue/e.newValue使用空string而不是null 。 (更新:在EdgeHTML 13.10586仍然是一个问题) IE调用localStorage事件处理程序非确定性BEFORE或AFTER设置/删除后生效,而不是始终如一。 更新2015-12-24 看来这个bug被转移到边缘(testing的EdgeHTML 13.10586) 更新2016-02-02 韦尔普,没关系。 在IE v11.63.10586.0 (更新2016-08-13:显然它是相关的“更新版本”,而不是在IE的关于对话框中报告的“版本”)中再次观察到这个错误。 更新2016-08-13 这个现在似乎在IE(更新版本11.0.34)中是固定的,虽然存储事件仍然在原始窗口中被触发,违反规范(一个已知的长期存在的问题)。 我发现这个包含在IE 2016年6月14日安全更新中的知识库 ,尽pipe根据其描述,它只涉及上面的第二个项目符号。 至于Edge(经过testing的EdgeHTML 14.14393),现在看起来这个问题现在已经解决了,但是还有一个新问题:存储事件不是跨同一页面的同源帧触发的。 我在这里分别向MS报告。

在JavaScript中将em转换为px(并获取默认字体大小)

在某些情况下,可以获得实时测量的精确像素宽度。 例如,假设您有一个带有CSS属性的元素(如边框或填充),这是以ems度量的,您需要获取边框或填充的精确像素宽度。 有一个涉及这个话题的现有问题: 如何通过使用JavaScript或JQuery获取像素的默认字体大小? 这个问题是关于获取默认字体大小 – 这是必要的,以便将相对em值转换为确切的px值。 这个答案有一个很好的解释如何得到一个元素的默认字体大小: 由于ems可以测量宽度,所以你可以通过创build一个1000 ems长的div,然后将它的client-width属性除以1000来计算确切的像素字体大小。我似乎记得ems被截断到最接近的千分之一,所以你需要1000埃姆避免像素结果的错误截断。 所以,使用这个答案作为指导,我写了下面的函数来获取默认字体大小: function getDefaultFontSize(parentElement) { parentElement = parentElement || document.body; var div = document.createElement('div'); div.style.width = "1000em"; parentElement.appendChild(div); var pixels = div.offsetWidth / 1000; parentElement.removeChild(div); return pixels; } 一旦你有了默认的字体大小,你可以通过将ems乘以元素的默认字体大小并舍入结果来将任意宽度转换为px宽度: Math.round(ems * getDefaultFontSize(element.parentNode)) 问题: getDefaultFontSize理论上应该是一个简单的副作用自由函数,它返回默认的字体大小。 但它有一个不幸的副作用:它修改DOM! 它附加一个孩子,然后移除孩子。 追加孩子是必要的,以获得一个有效的offsetWidth属性。 如果不将子div追加到DOM,则offsetWidth属性保持为0,因为该元素从不呈现。 尽pipe我们立即删除了子元素,但这个函数仍然可能会产生意想不到的副作用,比如触发父元素的事件(如Internet Explorer的onpropertychange或W3C的DOMSubtreeModified事件)。 问:是否有任何方法可以写一个真正的副作用免费getDefaultFontSize()函数,不会意外触发事件处理程序或导致其他意想不到的副作用?

如何立即触发timer.Elapsed事件

我正在使用System.Timers.Timer类创buildTimer.Elapsed事件的计时器。 事情是Timer.Elapsed事件只有在间隔时间过后才会被第一次触发。 有没有办法在启动计时器后立即boostTimer.Elapsed事件? 我无法findSystem.Timers.Timer类中的任何相关的属性。

线程忽略KeyboardInterruptexception

我正在运行这个简单的代码: import threading, time class reqthread ( threading.Thread ): def __init__ (self): threading.Thread.__init__(self) def run ( self ): for i in range(0,10): time.sleep(1) print '.' try: thread=reqthread() thread.start() except (KeyboardInterrupt, SystemExit): print '\n! Received keyboard interrupt, quitting threads.\n' 但是当我运行它,打印 $ python prova.py ` . . ^C. . . . . . . . Exception KeyboardInterrupt […]

在.NET中,事件处理的线程是什么?

我试图在c#中实现一个生产者/消费者模式。 我有一个消费者线程监视共享队列,和一个生产者线程放置到共享队列的项目。 生产者线程订阅接收数据…也就是说,它有一个事件处理程序,只是坐在旁边,并等待一个OnData事件触发(数据从第三方api发送)。 当它获得数据时,它将它放在队列中,以便消费者可以处理它。 当OnData事件在生产者中触发时,我曾预料它将由我的生产者线程来处理。 但是,这似乎并没有发生。 OnData事件看起来好像它正在一个新的线程上处理! 这是如何.NET总是工作…事件是在自己的线程处理? 我可以控制什么线程处理事件,当他们被提出? 如果几乎同时发生数百个事件会怎样呢?每个事件都有自己的线程?

C#列表框项目双击事件

我有一些项目的列表框。 无论如何,我可以附加一个双击事件到每个项目? Item 1 Item 2 Item 3 如果我要双击项目2,将popup一个消息框“Item 2” 我将如何做到这一点?

是否有可能以编程方式捕捉浏览器页面上的所有事件?

首先,这里是由W3C标准定义的事件types列表。 (这个列表基于HTML5标准中定义的onevent属性,我假设有几十个其他的事件types,但是这个列表足够长。) 退出 打印后 beforeprint beforeunload 模糊 可以玩 canplaythrough 更改 点击 上下文菜单 复制 cuechange 切 DBLCLICK DOMContentLoaded 拖动 dragend 的dragenter dragleave 的dragover 的dragstart 下降 durationchange 清空 结束 错误 焦点 专注于 事件的内容 formchange 的formInput hashchange input 无效 KEYDOWN 按键 KEYUP 加载 loadeddata 等待loadedmetadata loadstart 信息 鼠标按下 的mouseenter 鼠标离开 鼠标移动 鼠标移开 鼠标移到 鼠标松开 鼠标滚轮 离线 线上 pagehide […]

观察者模式和事件驱动方法之间的区别

我总是发现观察者模式几乎类似于通常的事件驱动方法。 实际上,我几乎相信它们实际上是指同一事物的不同名称。 它们都使用类似的概念来作为一个监听器,甚至在实现中,它们几乎是一样的,那就是有一个callback方法/函数来执行一个动作。 这至less在Java中。 在其他语言中说,Actionscript / Flex,事件更加用户友好,可能看起来不仅仅是观察者模式定义。 但是,这些概念听起来是一样的。 但这是真的吗? 观察者模式与通常的事件驱动编程风格是一样的吗?