从html对象或iframe调用javascript

Call javascript from html object or iframe

本文关键字:调用 javascript iframe html 对象      更新时间:2023-09-26

我有以下问题使用HTML和javascript。我的网站在div中有一个HTML页面,如下所示:

<object name="cont" type="text/html" data="myHtmlPage.html"></object>

我有一个javascript函数(链接到主页),改变该对象的内容。

代码工作得很好,因为我可以在"内部"页面中导航而不改变外部上下文。

问题是,现在我需要调用,从加载在该对象的html页面,在主页javascript上的函数(需要在主页上调用,因为我必须改变主页div的一些属性)

有办法吗?

我希望我说的很清楚,谢谢你的帮助。

Matteo

编辑:

我有一个index.html,有一系列的部分(是一个单页网站)。

在一个部分(#services)我有两个div:一个你可以选择一个服务和一个有一个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);}`
}

我有另一个页面,让我们称之为service1 .html,这是通过该函数在iFrame加载,正确工作。

我需要从该页调用父页上的changeService函数,这样我就可以更改服务和后台。

根据JSantosh的建议,我在service1.html中有一个javascript函数,它调用方法parent.changeService(service),但不做任何动作。

我通常通过<script type="text/javascript" src="js/serviceMenuHandler.js"></script>在body的顶部加载js,所以在iFrame之前。

希望现在更清楚,谢谢你

编辑2 :

在Firefox中,它可以很容易地调用parent上的函数,就像评论中建议的那样。

有人知道为什么它不能在Chrome上工作吗?

好了,我想我知道你想干什么了。

你想在索引页以外的页面上调用函数changeservice

要做到这一点,最简单的方法是将函数移动到.js文件中,然后将该文件包含在两个页面上,这将使访问.js文件中的函数到包含的任何页面。include看起来像这样。
<script src="javascript.js"></script>