2011-02-06 3 views
0

Это мой код:GetElementsByTagName не возвращает элементы управления WebBrowser

webBrowser1.ObjectForScripting = this; 

    string str = 
     "<html><head><script type=\"text/javascript\">" + 
     "var list = document.getElementsByTagName('abbr');" + 
     "len = list.length;" + 
     "for(i = 0;i < len;i++)" + 
     "{obj=list[i];obj.onclick=window.external.Test(this.id);}" + 
     "</script></head>" + 
     "<body>"; 

    for (int i = 1000; i < 1100; i++) 
    { 
     str += "<abbr id=\'" + i.ToString() + "\'" + 
     ">" + i.ToString() + " </abbr>"; 
    } 
    str += "</body></html>"; 

    webBrowser1.DocumentText = str; 

Благодаря

ответ

2

Как вы разместили свой сценарий в <head>, он запускается на выполнение, прежде чем содержимое <body> полностью загружены. Есть две возможности избежать этой проблемы: вы можете разместить сценарий до окончания </body> -Tag или выполнить свой скрипт onload.

window.onload = function() { 
    // Insert code that depends on a loaded body here. 
} 
+0

О, да. вы правы. Спасибо за ваш ответ. но теперь событие onclick не возникает для всех элементов 'abbr' – ARZ

+0

попробуйте обернуть его в кавычки – qwertymk

+0

, проблема все еще остается. – ARZ

Смежные вопросы