无法在QWebView中从Javascript调用Flash(Swf)方法

时间:2010-08-10 17:59:15

标签: javascript qt flash qwebview

我有:

  • swf文件,a)通过ExternalInterface.addCallback使其中一个方法可用于外部世界; b)通过ExternalInterface.call;
  • 调用预定义的外部世界方法
  • html-page,这个Swf文件所在的位置。这个html中有两个javascipt方法:一个用于调用Swf-published-method,另一个用于由swf调用;
  • Qt-app,通过QWebView-> QWebPage加载此html页面。

当我在FireFox中加载这个html页面时,一切正常:可以从javascript调用Swf,反之亦然。但是在Qt-app中只有swf可以调用javascript方法,但反之亦然。调用swf方法失败,并在javascript控制台上打印以下消息:“在NPObject上调用方法时出错”。

任何想法如何使Qt-app表现得像FireFox,即可以从javascript调用Swf?任何帮助将不胜感激,

背景:

  • Qt 4.6.2;
  • Kubuntu 10.04;
  • Swf是使用Flex 4构建的;
  • Swf是本地信任的。

1 个答案:

答案 0 :(得分:1)

我自己解决了问题。

加载html-page的原始代码如下:

QFile html(<theHtmlPageFileName>);

html.open(QIODevice::ReadOnly);

m_page->mainFrame()->setContent(html.readAll());

重写的变体:

m_page->mainFrame()->load(<theHtmlPageFileName>);

在后一种变体中,一切正常。

顺便说一句:在Windows下,第一个变体也可以。