HTMLとjavascriptを使用すると、次の問題があります。私のウェブサイトには、div に次のような HTML ページが含まれています。
<object name="cont" type="text/html" data="myHtmlPage.html"></object>
そのオブジェクトのコンテンツを変更する JavaScript 関数 (メイン ページにリンク) があります。
外部コンテキストを変更せずに「内部」ページをナビゲートできるため、コードはうまく機能します。
問題は、そのオブジェクトにロードされた html ページから、メイン ページの JavaScript の関数を呼び出す必要があることです (メイン ページの div のいくつかのプロパティを変更する必要があるため、メイン ページで呼び出す必要があります)。
それを行う方法はありますか?
私が明確だったことを願っています、あなたの助けに感謝します。
マッテオ
編集:
一連のセクションを持つ index.html があります (単一ページの Web サイトです)。
セクション (#services) には 2 つの div があります。1 つはサービスを選択できる場所で、もう 1 つは iFrame(#content) (以前は html オブジェクト) がある場所です。
js (serviceMenuHandler.js) には、次の関数があります。
function changeService(servizio){
var pathServizio;
var pathMenu;
pathServizio = servizio + ".html";
pathBg = 'url(img/'+servizio+'.jpg)';
if(servizio=="applicazioni" || servizio == "progettazione"){
pathServizio = "errore.html";
}
document.getElementById('content').src=pathServizio;
$("#services").css('background',pathBg);}`
}
別のページがあります。それを serivice1.html と呼びましょう。これは、iFrame のその関数を介して読み込まれ、正しく機能しています。
そのページから、サービスと背景を変更できるように、親ページで changeService 関数を呼び出す必要があります。
JSantosh で提案されているように、service1.html にメソッドを呼び出す JavaScript 関数がparent.changeService(service)
ありますが、アクションは実行されません。
<script type="text/javascript" src="js/serviceMenuHandler.js"></script>
私は通常、本体の上部、つまり iFrame の前にjs をロードします。
より明確になったことを願っています、ありがとう
編集2:
Firefox では、コメントで提案されているように、親の関数を簡単に呼び出すことができます。
Chromeで動作しない理由を誰かが知っていますか?