4

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で動作しない理由を誰かが知っていますか?

4

1 に答える 1