4

コードビハインドから親ページの 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"
              });
          }

ただし、これにより、「未定義または null 参照のプロパティ 'addPoint' を取得できません」というエラーが発生します。このエラーの原因は何ですか? contentWindow が null でないことを確認しました。

4

2 に答える 2

5

その関数を呼び出そうとしたときに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>
于 2013-03-02T01:54:45.293 に答える
0

iframe が読み込まれたら、関数を呼び出してポイントを追加できます。onloadまたは、この関数の呼び出しをイベントに入れることができます

于 2013-03-02T03:01:24.317 に答える