小编Pat*_*son的帖子

iframe中的元素上的getElementById

我当前的代码适用于iframe之外的元素.我应该如何使用getElementById在iframe中获取元素?我的最终目标是在<body id="tinymce"><p>...</p></body>标签内写文字.我没有使用webBrowser控件 - 这是针对iexplore的外部实例

HTML示例

在此输入图像描述

代码示例

foreach (InternetExplorer ie in new ShellWindowsClass())
{
    if (ie.LocationURL.ToString().IndexOf("intranet_site_url") != -1)
    {
        IWebBrowserApp wb = (IWebBrowserApp)ie;
        while (wb.Busy) { Thread.Sleep(100); }
        HTMLDocument document = ((HTMLDocument)wb.Document);

        // FETCH BY ID
        IHTMLElement element;
        HTMLInputElementClass hitem;

        element = document.getElementById("tinymce");
        hitem = (HTMLInputElementClass)element;
        hitem.value = first_name;

        // FETCH BY ID in IFRAME
        IHTMLFramesCollection2 hframes = document.frames;
        for (int i = 0; i < hframes.length; i++)
        {
            object ref_index = i;
            IHTMLWindow2 currentFrame = (IHTMLWindow2)hframes.item(ref ref_index);

            if …
Run Code Online (Sandbox Code Playgroud)

c# internet-explorer mshtml

5
推荐指数
1
解决办法
2万
查看次数

BackgroundWorker Progress更改为从单独的类触发的表单

我是C#的新手,我正试图围绕面向对象的编程.这就是我想要完成的事情:

我有一个带有Form1的Windows窗体应用程序和一个名为connect(相同的命名空间)的单独类.

我知道在执行大量代码时使用后台工作人员是一种好习惯(以免冻结UI).所以我在Form1中创建了一个后台工作程序和一个progresschanged句柄.我试图找到如何在单独的连接类中触发progresschange.在Form1的progresschange块中,我有一个case/switch,用于确定屏幕上显示的文本.

解决这个问题的最佳方法是什么?我可以把背景工作者传给其他班级吗?

c# class backgroundworker

1
推荐指数
1
解决办法
2046
查看次数

标签 统计

c# ×2

backgroundworker ×1

class ×1

internet-explorer ×1

mshtml ×1