永远在最前面的桌面版 YouTube 播放器

Always on top, desktop YouTube player

我正在尝试制作一个无边界、始终位于顶部的 YouTube 播放器,我几乎已经设置好所有内容,这是我的代码:

    Dim html_aux As String = InputBox("Inserte URL YouTube")
    Dim s As String() = html_aux.Split("=")
    Dim htmlContent As String = "<html><body><iframe width='480'; height='271'; src='https://www.youtube.com/embed/" & s(1) & "'; frameborder='0';></iframe></body></html>"
    Dim archivo As New System.IO.StreamWriter(".\Index.html", False)
    If System.IO.File.Exists(".\Index.html") Then
        archivo.WriteLine(htmlContent)
        archivo.Close()
    Else
        MkDir(".\Index.html")
        archivo.WriteLine(htmlContent)
        archivo.Close()
    End If
    Navegador.Navigate("file:///" & IO.Path.GetFullPath(".\index.html"))

启动应用程序时出现问题;我收到来自 WebBrowser 控件的三个错误。

脚本错误。

Error: Object doesn't support property or method 'create'.

我的猜测是这些错误来自 WebBrowser 不支持 youtube.com/embed/url 持有的实际 html 代码。

有没有办法让WebBrowser处理这些冲突?我应该停止尝试吗?

我找到了问题的答案,在HTML代码中添加以下header解决了问题:

<html>
  <head> 
     <meta http-equiv='X-UA-Compatible' content='IE=edge' /> 
     ... headers code
  </head>
  <body>
     ... body code
  </body>
</html>

我不再收到脚本错误。

完整代码:

Public Class Form1

Private Sub URLToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles URLToolStripMenuItem.Click

    Dim html_aux As String = InputBox("Inserte URL YouTube")
    Dim s As String() = html_aux.Split("=")
    Dim htmlContent As String =
        "<html>
        <head>
        <meta http-equiv='X-UA-Compatible' content='IE=edge' />
        </head>
        <body>
        <!DOCTYPE html PUBLIC '-//WAPFORUM//DTD XHTML Mobile 1.2//EN' 'http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd'>
        <iframe width='480'; height='271'; src='https://www.youtube.com/embed/" & s(1) & "'; frameborder='0';>
        </iframe>
        </body>
        </html>"
    Dim htmlFile As New System.IO.StreamWriter(".\Index.html", False)
    If System.IO.File.Exists(".\index.html") Then
        htmlFile.WriteLine(htmlContent)
        htmlFile.Close()
    Else
        MkDir(".\index.html")
        htmlFile.WriteLine(htmlContent)
        htmlFile.Close()
    End If
    Navegador.Navigate("file:///" & IO.Path.GetFullPath(".\index.html"))
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    Me.TopMost = True
End Sub

End Class