2017-10-06 16 views
0

ユーザーが既に新しいページにリダイレクトするのではなく、そのページ内に「ページを読み込む」必要があります。これを行うには、iframeが最善の方法だと私は理解しています。私はjQueryのdialog boxがこのiframeコンテンツのラッパーとして好きです。見た目がよくて、ポップアップの位置を変更したり、簡単に閉じることができます。jQueryダイアログボックス内のiframe内の要素にアクセスする

ただし、このiframeの要素にアクセスする際に問題があります。私は、ユーザーの元のウィンドウからデータを取得し、新しいiframeの入力要素に追加することができますが、私はこれを行うための構文を見つけることはできません。

iframeページのコードに、jQueryの使用を上書きするものが$であるため、$('#foo').text('bar')は使用できません。私は純粋なJavaScriptで正しい構文を見つけようとしてきた -

e_frameは私のiframeに与えたIDであり、 titleはiframe内にロードする要素のidです
var a = window.frames["e_frame"].document.getElementById ("title"); 
a.text = 'foobar'; 

のように。これらの両方を開発者用コンソールではっきりと見ることができますが、私はそれらにアクセスできず、私が間違っていることがわかりません。コンソールで上記のコマンドを入力するには、私は、このエラーを与える:私は私が探しているかわからないんだけど以来

VM364:1 Uncaught TypeError: Cannot read property 'document' of undefined 
    at <anonymous>:1:28 

と自分自身をデバッグするためにコンソールにwindow.framesを入力するには、通過するために私にあまりにも多くの行を与えます。

アイデア?

+0

同じプロトコルとポートを親ページとして使用して、同じドメインのiframe内のページです。 – adeneo

+0

iframeは別のサブドメイン(a.mydomain.comとb.mydomain.com)からのものです - Apache ProxyPass経由でロードしています - プロキシ経由でロードする前にCORSエラーが表示されていましたが、プロキシを介してページを読み込み、通常のようにマウスやキーボードを使ってページとやりとりできますが、コードから直接アクセスすることはできません。 –

+0

私は同じサブドメイン上の別のページで同じアプローチを試みましたが、私はjavascriptでページの要素にアクセスできます。私はそれがCORSの問題だと思います。それをねえ! –

答えて

1

これを試しましたか?

var iframe = document.getElementById("e_frame"); 
var iframe_contents = iframe.contentDocument.getElementById('title'); 
+0

'var iframe = document.getElementById(" e_frame ");' –

+0

のために 'undefined'が間違っていました。ダイアログ> iframe>要素は正しいですか? –

+0

はい、そうです –

関連する問題