2017-01-31 7 views
-1

私は開きたいと思っています - https://myUI:88/openURL/(例えば、ボタンをクリックすると支払いゲートウェイのようにhttps://myUI:88/openURLにリダイレクトする必要があります)以下のユーザースクリプトを渡す:

getRealData('{"mailing":{"postalCode":"111","city":"NJ"},"terminal":"222"}'); 

これをAJS 1.xでどのように達成するには?

getRealDataは、あなたがのwindow.postMessage()APIを使用して、親ウィンドウと子ウィンドウ間でデータを渡すことができ

+0

は、ある意味で "ユーザースクリプト" を渡し??メインウィンドウから開いたウィンドウにjsonデータを送信しますか? –

+0

はい..そのurl(そのWebアプリケーション)でメソッド-getRealDataを呼び出します – Smitha

+0

データuriで何かできるのですか? https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs – Smitha

答えて

0

https://myUI:88/openURLウェブアプリでパブリックメソッドです。親のjsファイルで

:子供のJSファイルで

var childWindow = window.open(childurl);// opens a new window and puts the reference to it in childWindow variable. 

childWindow.postMessage(YourMessageJson);//the json should be stringified before sending 

window.addEventListener('message', receivedMessage);//attach event listener to get the event sent by postMessage from your parent. 

function receivedMessage(data){ //callback function executed on receiving the message 
    xhr.open(url) //The http call that you wanted to make from this page (I have just put a dummy xhr call, replace it according to your use case) 

} 
+0

これはうまく見えますが、私は自分のchildUrlと、この機能を持つ既存のレガシーWebアプリケーションを制御していません。getRealData – Smitha

+0

あなたは、あなたのアプリから渡したイベントを処理するコードを書くことなく、別のアプリに存在する関数を呼び出すことはできません。また、クロスサイトスクリプティングが含まれているため、非常に悪い習慣であり、アプリケーションを非常に脆弱にします。 –

+0

これは任意のユーザースクリプトを実行してtampermonkeyなどで実行させることは可能ですか?セキュリティを妥協することは今のところうまくいきます – Smitha

関連する問題