簡體   English   中英

javascript,js - 從父窗口訪問iframe中的js函數

[英]javascript, js - Access a js function inside an iframe from the parent window

大家好日子。

我有以下設置:

一個包含html,js等的頁面(通常的東西)和一個iFrame。 在iFrame中,我有一個執行某些操作的功能(任何事情..警報('test');例如)。

如果我點擊主頁面上的按鈕,我需要運行該功能。

例如,如果我在主頁面中按下按鈕警報,則iFrame中必須出現帶有“測試”字樣的警報。

document.frames[n]使框架可以按文檔中出現的順序訪問。 所以document.frames[0].contentWindow.myFunction()會在框架內調用你的函數,以防iframe是唯一的框架。

從框架中調用主窗口中的函數通過top工作,如top.myFunction() 如果你只想提高一級,你就使用parent級。

為了更加健壯:

function getIframeWindow(iframe_object) {
  var doc;

  if (iframe_object.contentWindow) {
    return iframe_object.contentWindow;
  }

  if (iframe_object.window) {
    return iframe_object.window;
  } 

  if (!doc && iframe_object.contentDocument) {
    doc = iframe_object.contentDocument;
  } 

  if (!doc && iframe_object.document) {
    doc = iframe_object.document;
  }

  if (doc && doc.defaultView) {
   return doc.defaultView;
  }

  if (doc && doc.parentWindow) {
    return doc.parentWindow;
  }

  return undefined;
}

...
var el = document.getElementById('targetFrame');

getIframeWindow(el).targetFunction();
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM