2012-02-28 6 views
0

私はウェブ開発とjsを初めて利用しています。私はいくつかのjsとjQueryを理解していますが、有用なコードを書くのに十分ではありませんので、ここで助けを求めています。私はいくつかのサードパーティ製のWebアプリケーションをiFrame経由で自分のウェブサイトに組み込んでいます(ポップアップウィンドウと直接リンクから外してください、これが最良の方法です)。iframe js issues

1)Webアプリケーションは、直接コーディングを可能にして唯一のCSSスタイルの選択肢の限られた数のために許可されていません。背景画像をアップロードして背景色を変更することはできますが、透明にすることはできません。私は私のウェブサイトの背景が表示されるようにiframeを調整したい。 Firebugによると、私は単に背景色のオプションを完全に取り除くことができ、問題は解決されます。

問題は、これらのアプリケーションがドメイン間の問題を引き起こしていることです。ほとんどのコードが動的ビューコントローラを使用してサーバー側であると想像しています。おそらく動作しません。私の "IT Guy"では、.phpファイル内のiframeをターゲットにして、スタイルがカスケードするのでiframeが読み込まれるとスタイルを変更できるはずだと言っています。しかし、iframeだけでなく、ページ上の他のすべてのものは、名前が付けられていない(クラスもidsもありません)ので、それをターゲットにするために、何らかの(this)を使用する必要があります。 ") ものの種類。私たちが試したことはこれまでに何もできませんでした。 iframeをターゲットできれば、正しく表示されないボタンのようなその他の小さな問題を変更できます。

2)私は、iframeの高さを設定し、高さよりも長いのiframeが表示され、物事は、それが明らかに(カットオフした場合)。動的な高さを持つためにiframeが必要なので、iframeの内容が変更された場合、iframeの高さも変更されます。私はこれを行うためのコードスニペットを見てきましたが、私は何をやっているのか分かりませんでしたが、意外にもうまくいきませんでした。私はこれがうまくいくなら少しのjs魔法を学びたいと思っています。

テストページをhttp://www.nightaliveent.com/builds/1.0/music.phpに位置しています。それが助けになるなら私の現在のコードを提供することができますが、私はボードを汚染したくありません。参考までに、Webアプリケーションは、特にDJ Intelligenceツール(http://www.djintelligence.com/music)です。

ありがとうございました。すべてのビットが役に立ちます。この機能が動作しない場合は、Webツールの使用を中止する必要があります。

答えて

0

同じドメイン(セキュリティ)で使用されているiframeのコンテンツにのみアクセスでき、他のドメインからアクセスしようとすると動作しません。また、iframe(償却)を使用しないでください。代わりにobjectを使用してください。一部のIEバージョンでは、IEがW3Cに準拠していないため、iframeが必要です(offtopic:IEは私の意見では大した問題です)。

他のサイトからコンテンツPARTSをロードする場合は、ajaxを使用して、必要なコンテンツをページフィルタで取得してから取得します。 jQuery.ajax関数を参照して、成功とエラーのコールバックを定義できます。例:

$.ajax({ 
    async:true, 
    cache:true, 
    url: 'your url', 
    success:function(s) { alert('the string is: '+s); <filter contents and set target> }, 
    error:function() { alert('failed'); } 
}); 

+0

これは、a .php内の 'getContents ...'によって試していたものと同じで、そのファイルも含めています。それはうまくいったが、ページの動的コンテンツが読み込まれなかった。このメソッドは失敗し、エラー "XMLHttpRequestはhttp://nightaliveent.djintelligence.com/music/index.aspを読み込むことができません。出典http://nightaliveent.comはAccess-Control-Allow-Originによって許可されていません。アクセス制御状態が失敗したので、それが設定されているかどうかを確認することができますjsonの記述を見て、ajaxヘッダーを追加しても機能しませんでした。サイト –

+0

これはfile_get_contents()と似ていません。そのサーバーサイドを使用する場合は、curl拡張子を使用する方がよいでしょう。これは類似していない理由は、これがサーバー側であり、もう一方がクライアント側であるということです。クライアントサイドでは、サーバー側ではなく、HTTP_X_REQUESTED_WITHヘッダーオプションを送信します。ソースがajaxによって呼び出されるように保護されている可能性があります。一方、サービスを支払う必要があり、無料で使用することはできませんあなたがしようとしていることは違法であると思います。彼らにそれを統合するためのAPIがあるかどうかを尋ねますあなたのウェブサイトが、私は彼らがASPを書かれているAPIを持っていると思います。 – Codebeat

+0

また、私はあなたのページを見て、あなたはそれがあなたのサービスだと信じさせたいと思っています。私はそれも違法だと思う。 APIを要求するか、自分で何かをあきらめてビルドしてください。 – Codebeat

0

「マイ 『IT Guyは、』私たちは、私の.phpファイルにはiframeをターゲットとiframeがスタイルのカスケードするので、ロードされるとスタイルを変更することができるはずと言う。」

と間違ったくさんありますそれ。

  • iframeが読み込まれると、それはすでにブラウザのクライアント側です。 PHPは、現在のDOMにノーと言う
  • スタイルのカスケードを持っていません。あなたのiFrameはまったく異なるDOMの「穴」です。別のドメインのiFrameでコンテンツをスタイルする方法はありません。私は多分にいくつかのクレイジーサーバー側のハックと考えることができ

    を「私は、IFRAMEの内容が変化、IFRAMEの高さが変化する場合にもダイナミックな高さを持っているのiframeを必要とするので、」

それを計算してください。しかし、ああ、あまりそれほどあなたはそれについてもできません。

あなたはインラインフレームに他のサイトをロードしている、あなたは彼らがあなたのサイトをare'tことを心に留めておく必要があります。あなたのコードではありません。うまくいけば明らかなセキュリティ上の理由から、ブラウザはiFrameのコンテンツを直接操作することはできません。

0

カイル、親と子のドメインが異なる場合はiframeの内容にアクセスできないことは間違いありません。親URLは「http://www.nightaliveent.com」、子ドメイン(サードパーティのウェブアプリ)は「http://www.nightaliveent.djintelligence.com/music」

iframeの内容は、ページの読み込み後に例外をスローします。 URL http://www.nightaliveent.com/builds/1.0/music.phpでフレームからURL http://www.nightaliveent.djintelligence.com/music/でフレームにアクセスするための

$("iframe").contents() 

安全でないJavaScriptの試み。ドメイン、プロトコル、ポートは一致する必要があります。