作者unstoppable (BEN)
看板C_Sharp
標題[問題] htmlelement無法觸發onpropertychange
時間Tue Nov 10 05:05:01 2015
Htmlelement HE = webbrowser.document.getelementbyid("header");
HE.AttachEventHandler("onpropertychange", events_onpropertychange);
private void events_onpropertychange(object sender, EventArgs e)
{
MessageBox.Show("hi");
}
網頁是透過加載外部js檔案,使用javascript去增加HE下面的element
像是這樣:
__html.push(" <div class=\"loginFormWrap notlogged\">");
HE我使用onclick事件可以觸發,但是onpropertychange就不行
是HE的child增加不會觸發嗎?
如果要取得HE下面增加的內容,該如何處理?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.212.73
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1447103104.A.FAC.html
1F:推 Peruheru: 我只知道原因是事件來不及掛載 11/10 17:23
2F:→ unstoppable: 掛載事件是在document_completed裡面處理的,不曉得P 11/11 01:38
3F:→ unstoppable: 大說的是哪個部分,感恩 11/11 01:39
4F:推 Peruheru: 我對於後端程式掛載的JS事件不熟,但他掛載是在網頁產生 11/11 09:17
5F:→ Peruheru: 的時候掛載的吧?在document_completed的時候,你的外部 11/11 09:17
6F:→ Peruheru: js檔"還沒有"執行,也就是掛載的對象還沒產生所以掛不到 11/11 09:18
7F:→ Peruheru: 我不知道如果要用你現在的做法改進要怎麼做,我只會直接 11/11 09:19
8F:→ Peruheru: 寫在JS內,在產生後才進行掛載事件 11/11 09:20
9F:→ Peruheru: 我上面說的除非是對於"document_completed"理解有誤 11/11 09:22
10F:→ Peruheru: 不然他應該是跟jquery的$(document).ready();一樣吧? 11/11 09:22
11F:→ Peruheru: 所謂網頁載入完成,並"不包括"你用JS動態載入的元素 11/11 09:23
12F:→ Peruheru: 既然產生是用JS動態載入,那麼綁事件也應該寫在同一處 11/11 09:25
13F:→ unstoppable: 感謝P大回答,掛載的對象已經在document_completed產 11/11 20:04
14F:→ unstoppable: 生,JS在掛載的HE下增加child element,如果掛不上應 11/11 20:05
15F:→ unstoppable: 該會拋出錯誤,就是HE為null 11/11 20:06
16F:→ unstoppable: 翻了msdn,innerText或是innerHTML改變不會觸發 11/11 20:12
17F:→ unstoppable: onproprtychange事件,請問有人知道該使用什麼方式嗎? 11/11 20:14