【问题标题】:Call child Javascript function from parent从父级调用子 Javascript 函数
【发布时间】:2012-10-18 16:23:06
【问题描述】:

我有一个 iframe,在 iframe 里面有一个 javascript 函数。我希望能够从 iframe 的父级调用该函数,因为我需要在 iframe 打开时在 iframe 内设置一些值。到目前为止,我尝试过:

 ClientScript.RegisterClientScriptBlock(this.GetType(), "saveTasks", "<script type='text/javascript'> function SaveTasks() { frames['myIframe'].location.href = 'myURL'; frames['myIframe'].test(); } </script>");

但是,我无法调用 myURL 文件中的 test() 函数。

执行此操作的具体语法是什么,从其父级调用子级内部的 javascript 函数?谢谢

【问题讨论】:

  • iframe 的 URL 是否与您的父网站在同一个域中?
  • 是的,它与父级在同一个域中。

标签: javascript asp.net function iframe parent-child


【解决方案1】:

我对此并不十分熟悉。尽管这段 javascript 似乎没有任何方式能够知道“frames ['myIframe']”是什么。有很多事情可能会出错,例如 $document 是否已加载?

【讨论】:

    【解决方案2】:

    找到了解决方案:在我调用该函数时,似乎没有加载找到 javascript 函数的子页面。幸运的是我找到了here 的解决方案。

    ClientScript.RegisterClientScriptBlock(this.GetType(), "saveTasks", "<script type='text/javascript'> function SaveTasks() { frames['ValidateTasksIframe'].location.href = 'myURL'; $('#ValidateTasksIframe').load(function() { frames['ValidateTasksIframe'].test();});} </script>"); 
    

    使用 event.load() 就像一个魅力! :)

    【讨论】: