问题标签 [externalinterface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ExternalInterface 在 IE 中不起作用
我正在尝试从 javascript 调用 flash 对象中的操作:
作为:
js:
和
我正在使用 swfobject 包括我的闪存:
这里没有什么疯狂的。因此,此代码在所有内容中都可以正常工作,但在 Internet Explorer 中却不行(真是令人惊讶:\)。它正在正确获取电影对象,但无法调用外部接口函数。就是说属性没有定义。
我看过谷歌和 SO 都没有成功......任何帮助将不胜感激!
ruby-on-rails - 一种在外部设备和数据库之间同步数据的方法?
在我正在设计的应用程序中,我必须与设备通信并将数据读取的历史记录存储在数据库中。该设备本质上是一个通过串口输出数字的传感器。应用程序的用户端是一个 RubyOnRails 界面,允许用户查看这些数据并配置设备。
我想知道您可以为这种设置推荐数据库和设备之间的哪种连接。
到目前为止,我在主机(通过串行端口直接连接设备的计算机)上运行了一个自定义应用程序,该应用程序将充当 MySQL 数据库的桥梁。该应用程序将直接连接到 MySQL 数据库并执行查询。它工作得很好,但我不确定这是否是最好的解决方案。
我看到的唯一另一种选择是拥有一个我的自定义应用程序可以连接到的中间应用程序,而不是直接访问数据库。这可能是主应用程序的一部分,也可能是单独的东西。这会是一个更好的解决方案吗?
你会推荐另一种方法吗?
谢谢,
apache-flex - ExternalInterface.call("window.location.host.toString")
我编写了一个 flex 应用程序,它使用此代码从浏览器获取主机字符串
这行代码可以完美地在 Firefox 和 Opera 中获取主机字符串。但是,在使用 IE 时,返回的字符串始终为 'null'。我需要从浏览器中获取此类信息。我知道可以通过定义一个获取此类字符串并从应用程序调用该函数的 javascript 函数来解决此问题。但是,我的应用程序需要从本机来源获取此类信息。
我想知道是否有人遇到同样的问题并设法解决它,或者是否有人知道为什么我在 IE 中总是得到 null,但在使用 Firefox 和 Opera 时却没有
编辑1:
这是嵌入生成的 SWF 文件的 HTML 代码。也许这有助于发现错误
id、classid 和 allowScriptAccess 设置如下
任何的想法?
编辑2:
对于 Lior Cohen Flex 文件是您的第一个链接中使用的示例。子目录history包含history.js、history.css和historyFrame.html。包含生成的 SWF 文件的 HTML 页面是这样的
但是,这仍然没有按预期工作。
编辑3:
我已经发现了问题,但是我无法解决它。问题与 IE 的 javascript 引擎有关,与 ExternalInterface 或对象和嵌入 HTML 标记无关。
在我的情况下,我正在做的是编写对象并将标签嵌入到使用 javascript 创建的 div 中,然后使用 DOM 方法将此 div 附加到正文的末尾。但是,这种方法使 InternalInterface 在 IE 中总是返回 null(但在 Firefox 和 Opera 中都没有)。
我尝试使用 document.write 附加 HTML 内容,这使它在 IE 中完美运行,但是 document.write 覆盖了整个页面(删除旧内容),这是我不想要的。
知道如何解决这个问题吗?
谢谢
apache-flex - 如何在没有浏览器工具栏的情况下从 Flex 创建弹出窗口?
我正在尝试从 Flex 启动一个弹出窗口,但弹出窗口需要具有某些属性,因为通常可以使用 JavaScript window.open 指定。例如,弹出窗口不应有浏览器工具栏或 URL 框。
我尝试过使用 navigateToURL,效果很好,但我找不到指定弹出窗口属性的方法。
我试过使用ExternalInterface.call,但是当直接调用window.open,甚至创建一个调用window.open 的自定义JS 函数时,弹出窗口会被阻止。
帮助!
谢谢!
c# - C# 和 Flash 通信
C# 有什么方法可以获取 swf 通过 ExternaInterface 公开的方法列表?
javascript - 我的 ActionScript 的 ExternalInterface 回调函数没有通过。我该如何调试它?
请帮忙?看来我的回调函数没有被调用......返回。我正在使用 jQuery 和 Flash 8。要访问 Flash 对象,我使用的是 jquery swfobject 插件,参见 ( http://jquery.thewikies.com/swfobject/examples )。如果您认为我一开始就没有正确访问 SWF,请推荐有关我将如何执行此操作的代码。谢谢!
JavaScript 代码:
闪码:
javascript - Javascript -> Flash 抛出“错误调用 NPObject 方法”
我正在尝试从 Javascript 调用 Flash (AS3) 函数。代码运行时,我收到错误“错误:未捕获的异常:在 NPObject 上调用方法时出错!” 从我一天的谷歌搜索来看,这似乎是一个安全问题,我已经做了我能找到的一切,但错误仍然出现。
一些细节:
* Flash 9 和 Flash 10 播放器都会出现这种情况。
* swf 与加载它的 php 文件在同一个域中,并且包含试图调用 Flash 函数的 javascript。
* 我正在使用 sfwobject2.2 加载 swf 文件,如下所示:据我所知,
我的 Flash 电影正在执行 allowDomain 的操作:
* 我知道 ExternalInterface.addCallback 设置正确——当我禁用它,我得到一个“没有这样的功能”错误而不是 NPObject 投诉。
这让我完全发疯了,我只是不知道如何纠正它。有什么建议吗?
var flashvars = {};
var params = {};
var params = {menu: false, bgcolor: "#ffffff", allowScriptAccess: "always"};
swfobject.embedSWF("/path/to/swf", "id", "480", "310", "9.0.0", null, flashvars, params, attributes);
Security.allowDomain("www.mydomain.com");
javascript - 在 Google Chrome 中访问 ExternalInterface 公开方法时出现问题
我的简单 ActionScript 我正在尝试使用 Flash 的ExternalInterface来设置回调,以便 JavaScript 可以调用我的 Flash 对象上的方法。在 Safari、Firefox 和 IE 中一切正常,但我无法让 Chrome 正常工作。当我在 Chrome 上尝试代码时,出现以下错误:
Uncaught TypeError: Object #<an HTMLObjectElement> has no method 'setText'
这是我正在使用的示例 HTML(同样,在 Safari、FF 和 IE 中运行良好)
这是动作脚本...
jquery - 当 .swf 被 jQuery 引用时,如何调用 Actionscript 函数?
我有一个 .swf,我使用 jQuery SWF 对象插件 ( http://jquery.thewikies.com/swfobject ) 将它嵌入到 HTML 中。我需要从 javascript 函数中调用 .swf 中的许多函数。我通过调用 flash.external.ExternalInterface.addCallback() 使这些 actionscript 函数可供 javascript 访问。然而,当我拨打电话时,什么也没有发生。我以前发生过这种情况,似乎是当您从 jQuery 引用 .swf 时,您无法调用 flash 函数。无论如何(除了不使用jQuery)?
谢谢。
javascript - 使用 ExternalInterface 和 IE 从 JavaScript 获取 Flash 中的当前 URL
我正在尝试获取 Flash 播放器所在的当前 URL。不是 .swf 文件的 URL,而是浏览器指向的 URL。到目前为止,我使用过:
不幸的是,这在 IE 中不起作用。根据我的研究,我可以看到它不适用于 IE。
我在互联网上发现的唯一另一件事是在标签上贴上“id”标签。
所以我试图找出是否和/或如何:
不知何故,使用 IE 和其他浏览器中的 ExternalInterface 进行调用,以将当前 URL 返回给我。
或者
在标签上添加一个 id="PA" 属性并让 AS3 读取该标签并将其作为字符串拉入,而不使用 JavaScript
我的限制是我只能将标签添加到 HTML 中,而不能添加任何 JavaScript 函数。这必须在 AS3 中严格执行。
无论哪种方式,我都需要知道我在哪个 URL 上。任何帮助是极大的赞赏。