簡體   English   中英

如何從父頁面調用iframe中的腳本?

[英]How to call a script in an iframe from the parent page?

我試圖從后面的代碼中的父頁面調用IFrame中的腳本。 我用來調用函數的C#:

protected void Page_Load(object sender, EventArgs e)
{
    ...
    string scr = "document.getElementById('mapframe').contentWindow.addPoint(0, 0);"
    ClientScript.RegisterStartupScript(GetType(), Guid.NewGuid().ToString(), scr , true);
}

iFrame的HTML:

 <iframe name="mapframe" id="mapframe" src="Map.html" style="width:100%;height:360px;"></iframe>

和IFrame中的Javascript:

          function addPoint(lat, lon) {
              var myLatlng = new google.maps.LatLng(lat, lon);
              var marker = new google.maps.Marker({
                  position: myLatlng,
                  map: map,
                  title: "Hit"
              });
          }

但是,這會導致此錯誤:“無法獲取未定義或空引用的屬性'addPoint'”。 導致此錯誤的原因是什么? 我已檢查以確保contentWindow不為null。

當您嘗試調用該函數時,問題可能是您的iframe未加載

請嘗試以下方法

document.getElementById('mapframe').onload = function() {
    // I prefer frames.mapFrame.addPoint();
    document.getElementById('mapframe').contentWindow.addPoint(0,0);
}

甚至

<iframe 
     name="mapframe" 
     id="mapframe" 
     src="Map.html" 
     style="width:100%;height:360px;" 
     onload="this.contentWindow.addPoint(0,0)"></iframe>

一旦iframe被加載,然后你可以調用函數添加點。 或者您可以將此函數的調用放在onload事件中

暫無
暫無

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

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