純粋な Javascript を使用して IFrame にアクセスするには、アドバイスが必要です。
コンテキスト: 関数「Func1」を含む JS スクリプト「A.JS」があります。このページでは、以下に示すように、この関数は IFrame の直前に呼び出されます。
<script> A.Func1();</script>
<iframe src='xyz.com' title='Hello' type='portlet.iframe' > </iframe>
この IFrame はランダムに生成されるため、実行時には ID と名前がわかりません。したがって、アクセスできる唯一の方法は、IFrame の配列のハンドルを取得し、タイトルで正しいものを特定するまで、それぞれをループすることです。
また、JS 関数呼び出しは IFrame の前/上にあることに注意してください。
私の関数Func1()
では、私のコードは次のとおりです。正しい IFrame のハンドルを取得しようとしましたが、以下のすべてのメソッドが長さ 0 の配列を返しています。クロムバージョン29でこれを一時停止して見ています。実際、最後の配列iframeNodesAll4
は「Windows」を値として表示しています!
var iframeNodesAll1 = document.getElementsByTagName("iframe");
var iframeNodesAll2 = window.parent.document.getElementsByTagName("iframe");
var iframeNodesAll3 = window.document.getElementsByTagName("iframe");
var iframeNodesAll4 = window.frames;
それで、私はここで何が欠けていますか?スクリプトが IFrame の前に呼び出されたりロードされたりしているためですか?
ありがとう!