【问题标题】:wxWebView and JavaScriptwxWebView 和 JavaScript
【发布时间】:2023-03-30 17:03:01
【问题描述】:

我正在尝试用 C++ 和 wxWidgets 编写一个访问 YouTube 并使用 JavaScript 启动视频的程序。

它使用 YouTube JavaScript API,其文档位于 here

我编写了以下代码来播放“O, Canada”,特别是one here

wxWebView *webview = wxWebView::New(this, wxID_ANY, "http://www.youtube.com/watch?v=zwDvF0NtgdU");
webview->RunScript("function onYouTubePlayerReady(playerId) {document.getElementById('watch-player').playVideo();}");

运行上述代码未能达到预期目的,出现以下错误和崩溃:

....\src\msw\wxwebview_ie.cpp(762): "assert "document" 在 wxWebViewIE::GetDocument() 中失败。

我知道我的代码已成功加载页面,但运行 JavaScript(RunScript() 函数)似乎会导致错误。

我在 Windows 上使用 wxWidgets 2.9.3。

【问题讨论】:

    标签: javascript c++ youtube wxwidgets youtube-javascript-api


    【解决方案1】:

    这应该在revision 71030 中得到修复,它比您使用的 2.9.3 版本更新。您可以通过SVN 或每日snapshot 获取更新的代码。如果仍然无法解决,请在 wxWidgets Trac 上提交错误。

    【讨论】:

    • 升级确实修复了崩溃,但js根本没有运行。我用一个简单的alert()替换了js,没有弹出窗口。
    【解决方案2】:

    问题实际上是因为我在页面加载之前调用 JavaScript 太早了。如果我稍后调用它,它会起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 2022-01-11
      • 1970-01-01
      • 2022-09-08
      • 1970-01-01
      相关资源
      最近更新 更多