作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试仅使用 SWF 中的 ActionScript 读取页面上的特定 DIV。不幸的是我无法访问页面上的 JS。当我尝试运行此 AS 代码时,我仅收到 null。
var childTest:String = ExternalInterface.call("function expansionCheck(){return document.getElementById('myDIV').hasChildNodes();}") as String;
ExternalInterface.call('console.log', 'childTest is '+childTest);
我已验证参数设置正确以实现此目的。
<param name="allowScriptAccess" value="always">
有什么想法吗?
最佳答案
这是ExternalInterface.call()方法的语法。
function call(functionName:String, ... arguments):*
- functionName:String — The alphanumeric name of the function to call in the container.
但是您没有传递函数名称,而是传递了函数本身。
此外,函数expansionCheck()应该存在于html页面中,以便您可以使用ExternalInterface.call()方法访问它。
此外,返回* - 从容器收到的响应。如果调用失败——例如容器中没有这样的函数、接口(interface)不可用、发生递归(使用Netscape或Opera浏览器)或者存在安全问题——返回null并返回错误抛出。
检查这个link有关ExternalInterface.call()的更多详细信息
示例:
HTML 页面
<script>
function expansionCheck(){
return document.getElementById('myDIV').hasChildNodes();
}
</script>
ActionScript :
var childTest:String = ExternalInterface.call("expansionCheck") as String;
ExternalInterface.call('console.log', 'childTest is '+childTest);
关于javascript - AS3 : Reading the DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671193/
我是一名优秀的程序员,十分优秀!