2011-04-01 1 views
0

こんにちは、私は単純なhtmlのページ、iframeでlocalyを得ました。 iframeにはjavascript関数を持つ生成されたページが含まれています。私はその機能を呼び出すことを知っています。もちろん、私は「許可が拒否されました」。だから私は新しいことがjsとすべてのもの私はそれが実際に行うことが可能かどうかわからないので。検索のヒントや素晴らしい解決策を教えてください。iframeのfuncにアクセスしています。ローカルにオンライン

私は次のようにfuncを実行します。parent.myiframe.myfunc();

答えて

1

iframeのページは別のサーバー/ドメインに存在すると思います。現代のブラウザでは「クロスサイトスクリプティング」は許可されていません。http://de.wikipedia.org/wiki/Cross-Site_Scripting

可能であれば、iframe内のサイトを同じサーバーに移動します。代わりの方法(回避策)は、ローカルサーバー上のページをプロキシすることです。クライアントの場合は、同じドメインから読み込まれるようにします。

編集:これは「同じ発信元ポリシー」とも呼ばれます。同じサブドメインから同じドメイン(www.mydomain.com)

  • から

    • (mail.mydomain.com < - 無行く!)
    • :あなただけで、文書内のJavaスクリプト関数を呼び出すことはできません
    • は、http:の からhttp:// ...のドキュメントにアクセスして、同じポート(p.Ex. )を使用します。 *://ドキュメントは機能しません。

    あなたはIFRAMEのソースへのアクセス権を持っている場合、別の回避策があるかもしれません:(http://ajaxian.com/archives/how-to-make-xmlhttprequest-calls-to-another-server-in-your-domainを参照してください

    document.domain = "domain.com"; 
    

    をiframeのソースに:適用することで、外枠のと同じにiframeのドメインを変更し 詳細については)。

    はまた、すでに部分的にいくつかのブラウザで実装された「クロスオリジンリソースの共有」(http://www.w3.org/TR/cors/)のためのドラフトがあり、以下を参照してくださいhttp://www.webdavsystem.com/ajax/programming/cross_origin_requests

  • +0

    ええ、もちろん彼らは別のドメインにあり、私はそれを働かせるようにしなければなりません。 :)ありがとう – xotix

    +0

    基本的に私はあなたがiframeのソース/サーバーにアクセスできるかどうかを判断します。そうでない場合は、あなたができることは1つしかありません: – BatteryBackupUnit

    +0

    ソースアクセスはありませんが、htmlブロックを追加できます。ポーリングを生成するので、js、htmlを追加できます。私はそのdocument.domainを試してみましたが、それは動作しませんでしたが、このhtmlブロックをどのように実装しているのかわかりません。 – xotix

    関連する問題