设定: 我在WebBrowser控件上附加了一个事件处理程序,就像这样...
ChatInputElement.AttachEventHandler("onpropertychange", OnInputChange);
那部分工作得很完美......但是我正在弄乱的网站有时会将输入URLEncoded信息输入到输入区域,缺乏良好的人类可读体验。
所以我试图利用“onpropertychange”事件来触发一个URLDecode数据输入框中的方法。不幸的是,当我解码URL时,由于“onpropertychange”事件而导致堆栈溢出...
问题: 如何在输入框中完成URLDecoding数据,而不会导致Stack Overflow?有没有办法检测URLEncoded材质,因为输入框确实包含有时不需要解码的数据。
答案 0 :(得分:4)
您可以在处理程序中设置类级别标志,如果设置了标志,则退出处理程序。
答案 1 :(得分:1)
将结果存储在后续处理程序调用中进行比较:
防止循环的一种方法是在设置属性之前将解码的URL存储在字段变量中。然后,设置属性。在第二次调用事件处理程序时,将存储的字段与属性的当前值进行比较。如果它是相同的,您知道您已经对其进行了URL解码,并且在不修改属性的情况下退出事件处理程序。