2012-01-13 10 views
1

easyXDM JavaScriptを使用してクロスドメインハッキングを達成しようとしています。easyXDMを使用してプロバイダページのコンテンツを変更してください

easyXDMの背景。他人

  • プロバイダが提供する関数を呼び出し、消費者、によって呼び出される関数を提供し

    1. プロバイダ、:我々は2つの役割を持っています。

    要件は、このようなものです:ここでは

    The consumer passes the content as parameter and calls the function through RPC. 
    The provider receives the request and use the content to modify its page. 
    

    、DOM構造またはDOMノードの内容を変更しようとそのページを修正手段。

    プロバイダのコードは、コンシューマが要求したページコンテンツを変更します。 RPCを実行します

    var provider = new easyXDM.Rpc({}, { 
        local: { 
         modifyContent: { 
          method: function(content){ 
           // modify the content on my page 
          } 
         } 
        } 
    }); 
    

    消費者側は、そのページを変更するには、プロバイダを依頼します。

    var consumer = new easyXDM.Rpc({ 
         remote: "remoteUrl" 
        }, { 
         remote: { 
          modifyContent: {} 
         } 
        }); 
        //perform RPC and ask the provider to the modify its content 
        consumer.modifyContent("This is some content that should be used to modify your content"); 
    

    プロバイダがコンテンツを使用してそのページを修正しようとする場合を除いて、すべてのことがうまくいきます。

    エラーも警告も発生しません。しかし、ページは単に期待どおりに変更されません。

    さらに、私は(コピー&の貼り付け&のFirebugコンソールまたはChromeコンソールで実行される)のように、 "コンテンツの変更"コードだけを実行すると動作します。

    誰もeasyXDMを使用していましたが、この問題が発生しましたか?

    PS:easyXDMはここのタグではないようです。あなたがそれにふさわしいと思うなら、それを私のために追加してください。

  • 答えて

    4

    同じ問題が発生しました。問題は、easyXDMのRPC機能がどのように機能しているのか分かりませんでした。

    私の問題は、親に子のiframeを追加してから、ページに追加したiframeのurlでeasyXDM.Rpc()を呼び出すことでした。親から子へメッセージを送信すると、メッセージは正常に受信され、コンソールには正しいメッセージが記録されますが、子iframeのローカルコンテンツまたはグローバル変数は変更できませんでした。私が理解できなかったことは、新しいRPCクライアントが親に作成され、ツールが自動的にiframeを作成することです。私はページに描いたiframeを使うと思った。だから、私は1つのiframe(デフォルトでは画面からペイントされている)からログをとり、RPC呼び出しに接続されていないiframeとやり取りしていました。

    問題を修正するために、私はページに追加したiframeを削除し、RPC設定の "props"プロパティを使用してiframeを画面に表示させました。一度それをしたら、すべてうまくいった。

    +0

    私はjQを追加してeasyMDMのリモートパラメータを使わずにiframeを追加していたのと同じような状況に陥っていました。私はそれを固定した後、私はすべて設定されました! – Deb

    関連する問題