Apache flex Flex ExternalInterface:ActionScript可以查询HTML文档吗?
Flex应用程序是否有办法通过ExternalInterface获取有关HTML文档的任何信息?例如,Flex能否找出某个特定的DIV是否存在?回应我解释了Apache flex Flex ExternalInterface:ActionScript可以查询HTML文档吗?,apache-flex,actionscript,externalinterface,Apache Flex,Actionscript,Externalinterface,Flex应用程序是否有办法通过ExternalInterface获取有关HTML文档的任何信息?例如,Flex能否找出某个特定的DIV是否存在?回应我解释了ExternalInterface的实际工作原理。你可以从中得到一个简单的“是” [编辑]一些示例代码: var jsFunc:String = 'function () { return document.getElementById("test") != null; }'; var divExists:Boolean = External
ExternalInterface
的实际工作原理。你可以从中得到一个简单的“是”
[编辑]一些示例代码:
var jsFunc:String = 'function () { return document.getElementById("test") != null; }';
var divExists:Boolean = ExternalInterface.call(jsFunc);
我应该澄清一些事情 ExternalInterface是一个包含页面的Javascript接口,因此可以通过ExternalInterface直接或通过hoast页面上的函数实现Javascript中的任何功能 Flex应用程序是否有办法通过ExternalInterface获取有关HTML文档的任何信息 退房。两个头版示例称为:
Lance我根本不知道我的ActionScript代码如何从前面的答案中找出某个特定的DIV是否已经存在。对不起,我太迟钝了。我确实看到了调用javascript函数的可能性,但没有看到ActionScript代码从javascript函数获取数据的可能性。看起来javascript可以告诉ActionScript一些事情,ActionScript可以告诉javascript一些事情,但可以说ActionScript不能问javascript一个问题。而且——更清楚地说——我的ActionScript如何确定(也就是说,不是简单地假设)HTML文档中存在特定的javascript函数?@Tim:answer updated。还应该回答你的第二个问题,因为1。实际上,您不需要依赖外部JavaScript,2。您可以使用JavaScript来确定它。
protected function testCSS():void
{
var styleTag:JSHTMLElement = JSInterface.pushCSS('.text{font-weight:bold;color:#ff00ff;font-size:90;text-decoration:underline;}');
var font:JSHTMLElement = JSInterface.document.createElement('font');
font.innerHTML = 'Hello world!';
font.setAttribute('class', 'text');
font.className = 'text';
JSInterface.document.body.appendChild(font);
trace(styleTag);
}
protected function insertIFrame():void
{
var body:JSDynamic = JSInterface.document.getElementsByTagName('body')[0];
var frame:JSDynamic = JSInterface.document.createElement("iframe");
frame.width = 300;
frame.height = 300;
if (JSInterface.navigator.appName.indexOf('Microsoft')>=0)
{
frame.onreadystatechange = function():void
{
trace(frame.readyState);
};
}
else
{
frame.onload = function():void
{
trace('iFrame loaded');
};
}
frame.src = 'http://actualwave.com';
body.appendChild(frame);
}