GetElementsByTagName在WebBrowser控件中不返回任何元素

时间:2011-02-06 10:28:30

标签: c# javascript webbrowser-control

这是我的代码:

    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;

由于

1 个答案:

答案 0 :(得分:2)

当您将脚本放在<head>中时,它会在<body>的内容完全加载之前执行。有两种方法可以避免这个问题:您可以将脚本放在结束</body>之前 - 标记或执行脚本onload

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