阻止多个WebBrowsers启动yt-videos?

时间:2017-06-05 22:47:40

标签: c# html winforms youtube webbrowser-control

我正在使用 winform TabControl显示WebBrowser控件来显示YouTube视频。 然而,由于所有视频都是直接启动,因此有两个或更多视频会变得非常烦人。

我基本上需要查看是否有要更改的JS函数,html代码或简单的WebBrowser属性,因此视频会暂停。

为视频质量找到类似内容可能会派上用场。

有没有人听说过/看过这个选项的存储位置?或者在手动设置质量时可能会调用Js函数?

修改

b.DocumentCompleted += delegate { b.DocumentText=b.DocumentText.Insert(b.DocumentText.IndexOf("class=\"video-stream html5-main-video\""), "autoplay=false ");};
b.Url = new System.Uri(inp[s], System.UriKind.Absolute);

基本上,这应该在每个webbrowser表单上添加一个新的Event处理程序,在创建期间调用的Uri加载时修改DocumentText

即使浏览器调试器显示

<video tabindex="-1" class="video-stream html5-main-video" controlslist="nodownload" style=... src=...></video>

这不在实际的源代码中。 但是我找到了

$oa=function(a){g.S(a.o,"video-stream");g.S(a.o,"html5-main-video");var b=a.app.g;b.zc&&a.o.setAttribute("data-no-fullscreen",!0);b.Oh&&(a.o.setAttribute("webkit-playsinline",""),a.o.setAttribute("playsinline",""));b.Nr&&a.o&&a.P(a.o,"click",a.o.play,a.o)};
base.js中的

。 youtube是否有可能从js生成html? 那么如何修改视频标签属性呢?

我尝试修改事件处理程序操作视频标记的时间,因为脚本或任何内容可能会抛出DocumentCompleted个事件。

delegate (object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e){
    if (e.Url.AbsolutePath != ((System.Windows.Forms.WebBrowser)sender).Url.AbsolutePath){
        //...

然而它仍然失败,因为视频标签上没有出现特定类别。

我现在通过仅在选择浏览器标签时加载网址来避开此问题,如果有人找到真正的解决方案,请随时分享

0 个答案:

没有答案