关键词搜索

源码搜索 ×
×

javascript匿名函数传值问题

发布2017-11-10浏览1484次

详情内容

匿名函数里的对象,跟定义匿名函数页面的上下文有关,而与调用匿名函数的页面无关。

很拗口。举例说明:

//在某个“容器”页面
<div id="map_workspace"></div>
<script>
function showWorkSpace(callback, h) {
    var height = 500;
    callback("map_workspace",height);
}
</script>

//在该“容器”页面中的某个iframe页面
<script>
parent.showWorkSpace(function (containerId, h) {
    var container = $("#" + containerId);
    container.empty().html("<iframe class='frame frameMap' style='width:100%;height:" + h + ";' src='" + url + "'></iframe>");
});
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

匿名函数在iframe里定义,而在“容器”页面执行,而$(“#map_workspace”)对象很明显在“容器”页面上,但偏偏,没有获得我们预期的结果。改为:

//在某个“容器”页面
function showWorkSpace(callback, h) {
    var height = 500;
    callback($("#map_workspace"),height);
}

//在该“容器”页面中的某个iframe页面
parent.showWorkSpace(function (container, h) {
    container.empty().html("<iframe class='frame frameMap' style='width:100%;height:" + h + ";' src='" + url + "'></iframe>");
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

效果如愿。

什么道理,我也说不上来,仅作记录。

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载