【问题标题】:cefsharp execute Javascript from C#cefsharp 从 C# 执行 Javascript
【发布时间】:2016-04-07 13:41:20
【问题描述】:

我正在尝试在我的 Windows 窗体应用程序中播放在线视频。我可以成功播放视频,但我想让它全屏显示。

网址是这样的:

http://www.mitele.es/msplayer/popup/?editorialId=231609

我一直在检查网站,发现展开按钮的代码是这样的:

<button ng-if="fullScreenBtIf" class="fullscreen-bt msplayer-icon-fullscreen ng-scope" title="Pantalla completa" ng-click="toggleFullscreen()" ms-skin-button="" style="color: rgb(5, 187, 237); opacity: 1;"><span class="screen-reader-text">Ir a pantalla completa</span>
</button>

CEFsharp 工作正常,因为我已经通过警报对其进行了测试:

myBrowser.ExecuteScriptAsync("alert('test');");

我尝试通过以下方式扩展视频播放器:

myBrowser.ExecuteScriptAsync("toggleFullscreen();"); 

但我知道 toggleFullScreen 是未定义的。您有什么想法可以实现这一目标吗?

【问题讨论】:

  • Video 是否支持任何类型的快捷键?您可以发送按键或鼠标点击。
  • 我怎么知道?
  • 尝试按 f 键作为实验?

标签: javascript c# html cefsharp


【解决方案1】:

您的问题是范围之一,但无论如何都无法在没有用户输入的情况下使其全屏显示。打开您链接的视频,打开浏览器控制台并运行此...

MSPlayer.scopes[Object.keys(MSPlayer.scopes)[0]].toggleFullscreen();

这会在正确的范围内执行函数,但也会向您解释为什么它不能运行。

在 Chrome 中...

在“元素”上执行“requestFullScreen”失败:API 只能是 由用户手势启动。

但是,由于这是一个 Windows 表单应用程序,您可以使表单在运行时最大化并将 webview 停靠到表单以使 html 页面全屏,然后注入以下脚本来调整视频大小...

$("div").eq(0).css({
    position: "absolute",
    top:0,
    left:0,
    width:"100%",
    height:"100%"
});

这将使视频适合已经最大化的页面和表单。

【讨论】:

  • 哦,谢谢..所以没有办法实现我的目标,是吗?
  • 不,恐怕不会。好吧,我说“不怕”,但它实际上是为了我们的安全。
  • 我一直在阅读……非常感谢。我只想在我的床上全屏制作视频:D
  • 我不知道你会怎么做,但是你需要在页面加载后将一个脚本注入到页面中,运行这个命令......$("div").eq(0).css({ position:"absolute", top:0, left:0, width:"100%", height:"100%" });如果你打开视频并将其粘贴到控制台中,您将看到效果。这应该是你想要的,但是我不知道你是怎么做的。
  • 好的——我会的。很高兴我能帮助你:)
猜你喜欢
  • 2015-09-18
  • 2017-11-04
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多