私はa.aspx
とb.aspx
という2つのページを持っています。 a.aspx
にはIframe
があり、b.aspx
ページにはIframe
というページが読み込まれます。 javascript
をb.aspx
からa.aspx
に電話することはできますか?また、IFrameの(例えばhttp://site1/a.aspx
とhttp://site2/b.aspx
)であなたが、外側のページの異なる起源を持っているシナリオとページをカバーするこれを行うには 事前に感謝JavaScriptをIframeからaspxページに呼び出します
答えて
一つの方法は、postMessage
機能を使用することです。
これは、あなたがa.aspx
から呼び出されていたb.apx
にDoSomething
と呼ばれる機能を持っていた場合は、名前を変更することを決めた場合は、としてa.aspx
とb.aspx
間のAPI契約に「の中で自分自身をロック」しているという利点もあり両方のページ(およびIFrame内でa.aspx
をホストしていた他のページ)に変更を加える必要があります。 postMessage
アプローチを使用する場合、変更する必要があるのは、b.aspx
の "message"イベントのリスナーだけです。
あなたはa.aspx
に次のコードを配置した場合:
function sendMessageToEveryIFrame(message)
{
/// <summary>Call a function against all frames</summary>
var frames = document.getElementsByTagName('iframe');
for (var i = 0; i < frames.length; i++)
{
try
{
var frame = frames[i];
frame.contentWindow.postMessage(message, "*");
}
catch (e)
{
// Code to handle errors would go here!
}
}
}
をあなたはその後、持っていることによって(おそらくテスト目的のためにボタンのクリックで)それを呼び出すことができます。
sendMessageToEveryIFrame('Test message!');
あなたはその後、いくつかのコードを必要とします入ってくるメッセージに反応するb.aspx
にあります。
// This wires up your function that processes the message
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
// logic that reacts to the event/message goes here
alert(event.data);
}
ブラウザのa.aspx
のボタンを押すと、b.aspx
が "Test message!"というテキストを含むアラートウィンドウを表示するはずです。
receiveMessage
ファンクションは、要求をディスパッチし、効果的にブローカとして機能します。あなたが呼び出すために望んでいたb.aspx
内部の二つの機能を持っていたのであれば、次のようなコードを再ジグができます:a.aspx
で
:
function callFrameFunction(functionName, parameters)
{
/// <summary>Call a function against all frames</summary>
var frames = document.getElementsByTagName('iframe');
for (var i = 0; i < frames.length; i++)
{
try
{
var frame = frames[i];
var message =
{
Function: function,
Parameters : parameters
};
frame.contentWindow.postMessage(message, "*");
}
catch (e)
{
// Code to handle errors would go here!
}
}
}
これはcallFrameFunction
は、2つのパラメータの名前を取ることを意味し関数とその関数のパラメータ。それはより多くのように見えるようにあなたは、その後b.aspx
でコードを更新したい:
// This wires up your function that processes the message
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
// logic that reacts to the event/message goes here
switch(event.data.FunctionName)
{
case "function 1":
alert('Function called was \'function 1\'');
break;
case "function 2":
alert('Function called was \'function 2\'');
break;
}
}
あなたは適宜event.data.Parameters
に値を渡し、あなたの関数への呼び出しでalert
への呼び出しを置き換えることができます。
b.aspx
に次のjavascript関数があるとします。
function DoSomething()
{
//Do you required tasks
}
a.aspx
でこの関数を呼び出したいとします。 a.aspx
にはb.aspx
が、iframeには次のようにロードされています。
<iframe id="fraExample" name="fraExample" scrolling="no" src="b.aspx"></iframe>
これは、あなたがdoSomethingのこれはあなた素晴らしく、簡単のために働く必要がありますa.aspx
function CallFunction()
{
// This function will be in a.aspx
// some tasks
var bFrame = document.getElementById('fraExample'); // Get the iframe
bFrame.contentWindow.DoSomething();
// some other tasks
}
で記述された関数からb.aspx
で記述された機能を呼ぶことにします方法です!
- 1. iframeからjavascriptメソッドを呼び出す
- 2. AMPページからJavaScriptを呼び出して呼び出す
- 3. ASPXコードビハインド呼び出しページWebMethodのクライアントスクリプト
- 4. PHPページからaspxファイルを呼び出す
- 5. Silverlightアプリケーションからaspxページを呼び出す。
- 6. Webユーザコントロールから親aspxページの機能を呼び出す
- 7. aspxページからコードビハインドメソッドを呼び出す方法は?
- 8. iframeから親ページへのjquery関数を通常のjavascriptで呼び出す
- 9. iframeのjspページを呼び出す
- 10. 私のページ内のiframe JavaScript関数の呼び出し方法
- 11. 開かずにaspxページを呼び出す方法
- 12. iframeでjavascript関数を呼び出す
- 13. iframeからjavascript関数を呼び出す
- 14. window.openerからiframeのjavascript関数を呼び出す
- 15. iFrameからJavascript関数を呼び出す方法は?
- 16. iframe内のプレーンJavaScriptからEmberアクションを呼び出す
- 17. IFRAMEから親JavaScriptを呼び出すIE11
- 18. 子ページから親ページのjavascript関数を呼び出す
- 19. 別のページのjavascriptからページのwebmethodを呼び出す
- 20. 別のPCからaspxページを呼び出してください
- 21. aspxページからのパスでexplore.exeを呼び出してください
- 22. 呼び出し元ページのポップアップからjavascriptを実行する
- 23. Dynamics 2011 ASPXページIFRAME
- 24. .cs(または.vb)から.aspxへの呼び出し?
- 25. ヘルパーメソッドを呼び出すページのヘルパークラスからメソッドを呼び出します。
- 26. 新しいaspxページが新しいブラウザタブに読み込まれた後にJavaScript関数を呼び出す
- 27. iframeの外側からiframe内の関数を呼び出す
- 28. javascriptを使用してdivタグの.aspxページを呼び出すにはどうすればよいですか?
- 29. aspxページのメソッドへのJquery ajax呼び出し
- 30. aspxページでC#関数を呼び出す方法。
これまでに行ったコードを表示してください –
iFrameを意味しますか? – user1438038