WebBrowser控件中嵌入的iframe未加载

本文关键字:iframe 加载 控件 WebBrowser | 更新日期: 2023-09-27 18:11:04

我有以下代码:

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文件,然后运行它,它也工作得很好,如果我把webBrowser控件指向物理HTML文件。

但是,当这样做并在应用程序中创建HTML时,它就不会发挥作用了

WebBrowser控件中嵌入的iframe未加载

我自己刚刚试过。下面的代码将为您工作:

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;
}

在加载"about:blank"和写入文档之间存在竞争条件。

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