この問題の解決策は何かをまとめたいと思います。ここに役立つ URL があります。
基本的に、JavaScript をインポートするときに、pages<script>タグを介してコードを挿入します。このタグを介してインポートされたものはすべて、グローバル コンテキストですぐに実行されます。したがって、JavaScript ファイルを渡す代わりに、HTML タグのページではなく、コード内のコールバックを呼び出す JavaScript コード テキストを返すページを返す Web サイトへの URL を渡します。
URL パラメータを使用して、返す「コールバック」と、コールバックに入れる必要のあるパラメータをページに伝えます。例えば:
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m1=myParam"></script>
これが評価されると、「src」パラメーターによって返されるページ コンテンツは次のようになります。
myCallback( myParam );
サーバー側では、その URL にサイトを作成し、OnLoad に相当するものを (使用しているサーバー側言語で) オーバーライドします。ページ HTML の代わりに、OnLoad は URL パラメーターを受け取り、上記のコールバック呼び出しに一致するようにそれらを再スウィズルします。
置換が行われると、クライアントがページをロードするとすぐにコールバックが呼び出されます。この利点は、「src」URL がホストされているページのドメインと一致する必要がないことです。
最終的にクライアントの HTML ページは次のようになります。
<script type="text/javascript">
var myCallback = function( myParam ) {
alert( "this was called across domains!" );
};
</script>
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m=myParam></script>