EXTJS中如何在外部调用函数

yuanhao50619 2011-11-27 06:19:08
比如有一段代码在一个frame里边

Ext.onReady(function() {
var login=function(){
//login
};
});

那能否在外部调用这个login函数呢

比如像全局函数一样在浏览器地址栏中执行:javascript:login();

或者类似的方法,如果能在webbrowser控件中执行就最好了
...全文
386 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanhao50619 2011-11-27
  • 打赏
  • 举报
回复
这个代码没法更改啊,公司的系统,在总公司服务器上呢

我只能想办法去调用,如果实在没法调用,只能走其他途径

因为网站使用EXTJS编写,几乎所有的代码都是这种形式的

实在不行只能在外部把login这段代码重新写一遍执行

p2227 2011-11-27
  • 打赏
  • 举报
回复
闭包就是让外面不能访问。。。所以你肯定要暴露一点什么出去。。。或者你弄个命名空间专门存这个暴露的接口
yuanhao50619 2011-11-27
  • 打赏
  • 举报
回复
非常感谢楼上的回答,但是你的a还是作为全局变量的,如果你这么写呢?
我的情况就是这样

<script>
(function(){
var a="这是一个闭包里面的值";
})()

</script>
p2227 2011-11-27
  • 打赏
  • 举报
回复
IE8下通过

iframe.htm

<html>
<head>
<title>1231</title>
</head>
<body>
<iframe id="left" src="left.html"></iframe>
<input type="button" value="按我" onclick="show()"/>
<script>

show = function(){
alert(document.getElementById("left").contentWindow.a)
}
</script>
</body>
</html>


同目录下的left.html
<script>
var a;
(function(){
a="这是一个闭包里面的值";
})()

</script>

yuanhao50619 2011-11-27
  • 打赏
  • 举报
回复
就算不是在框架里边,在top frame里边也无法调用到这个login函数啊,都是无定义
yuanhao50619 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 p2227 的回复:]

document.getElementById("frame的id").contentWindow.函数
[/Quote]

报未定义错误
hookee 2011-11-27
  • 打赏
  • 举报
回复
应该可以调用的吧, 外面没有定义login,并且 onReady 执行完毕后
oIE.Document.frames("f_name").login()
p2227 2011-11-27
  • 打赏
  • 举报
回复
document.getElementById("frame的id").contentWindow.函数

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧