1

我有以下代码:

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 时,它就不会发挥作用。

4

2 回答 2

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;
}
于 2013-04-27T15:30:52.857 回答
1

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

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

于 2013-04-27T15:20:49.430 回答