WebBrowser Control中的嵌入式iframe未加载

时间:2013-04-27 15:15:11

标签: c# iframe embed webbrowser-control

我有以下代码:

webBrowser1.Navigate("about:blank");

string _embeddedpage = "<html><head></head><body bgcolor=\"black\"><iframe height=\"300\" width=\"600\" src=\"http://www.youtube.com/embed/9bZkp7q19f0\"></iframe></body></html>";

webBrowser1.Document.Write(_embeddedpage);

不幸的是,无论我尝试iframe都不加载。如果我将它保存到HTML文件然后运行它,HTML工作正常,如果我然后将webBrowser控件指向物理html文件,它也可以正常工作。

然而,当这样做并从应用程序中创建HTML时,它就不会播放。

2 个答案:

答案 0 :(得分:3)

我自己刚试过。此代码适用于您:

private void Form1_Load(object sender, EventArgs e) 
{
    string _embeddedpage = @"
            <html>
                <body>
                    <iframe class='youtube-player' type='text/html' width='640' height='385'
                        src='http://www.youtube.com/embed/9bZkp7q19f0\' frameborder='0'>
                    </iframe>
                </body>
            <html>";

    webBrowser1.DocumentText = _embeddedpage;
}

答案 1 :(得分:1)

您在加载&#34; about:blank&#34;之间存在竞争条件。并写入文件。

您应该在页面加载后写入,例如来自Navigated事件处理程序。