我有一个大型机和一个iframe:
以下代码是我想要做的:
function randerLeftMenu(callBack) {
$("#ifrm").attr("src", "<ui:context />/changedIframe")
if(callBack) {
$("#ifrm").load(function() { callBack(); });
}
}
(我必须操纵DOM对象。)
parent.randerLeftMenu(function() {$("#docType").val("aaa"); });
<input type="text" value="testVal" id="docType" class="input width2">
我尝试了很多东西,但我无法做到。
function randerLeftMenu(callBack) {
if(callBack) {
$("#ifrm").load(function() {
with(this.contentWindow) { callBack(); }
callBack.apply(this);
eval(callBack());
callBack.call(this);
$.proxy(callBack(),this.contentWindow);
});
}
}
答案 0 :(得分:0)
在您的示例中,您在{before {1}}调出“{1}}中包含的$
将始终作用于调用它的上下文。只有randerLeftMenu
变量可以动态绑定到不同的范围。你应该能够通过将函数作为字符串传递(或依赖于this
的{{1}}方法)并动态评估字符串来解决这个问题。
更新以包含工作示例(经过测试的Firefox和IE):
Function