永远在最前面的桌面版 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
我正在尝试制作一个无边界、始终位于顶部的 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