【问题标题】:Call javascript from html object or iframe从 html 对象或 iframe 调用 javascript
【发布时间】:2015-11-25 09:02:24
【问题描述】:

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

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

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

代码运行良好,因为我可以在“内部”页面中导航而无需更改外部上下文。

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

有没有办法做到这一点?

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

马特奥

编辑:

我有一个包含一系列部分的 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);}`
}

我有另一个页面,我们称之为 serivice1.html,它是通过 iFrame 中的该函数加载的,可以正常工作。

我需要从那个页面调用父页面上的 changeService 函数,这样我就可以更改服务和背景。

正如 JSantosh 所建议的,我在 service1.html 中有一个 JavaScript 函数,它调用方法 parent.changeService(service) 但它不执行任何操作。

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

希望现在更清楚, 谢谢

编辑 2

使用 Firefox,它可以按照 cmets 中的建议轻松调用父级上的函数。

有人知道为什么它不能在 Chrome 上运行吗?

【问题讨论】:

  • 你为什么使用&lt;object&gt;而不是&lt;iframe&gt;(这实际上会给你同样的东西,只是有更好的支持和定义更好的API集)?
  • 因为我不是这个领域的专家,而且它看起来是更好的解决方案。无论如何,如果有办法从 iframe 做我想做的事,那么在 iframe 中更改它对我来说不是问题!
  • 尝试从myHtmlPage.html拨打parent.functionName()
  • @JSantosh 不起作用
  • 它对我有用。只需在 DOM 中加载您要在 iframeobject 之前调用的 JS 函数并尝试。 @Matteo

标签: javascript jquery html css html-object


【解决方案1】:

好吧,我想我知道你想做什么。

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

执行此操作的最简单方法是将函数移动到 .js 文件中,然后在两个页面上包含然后文件,这样可以访问 .js 文件中的函数到任何包含包含的页面。包含看起来像这样。

<script src="javascript.js"></script>

我希望这会有所帮助。

【讨论】:

  • 我建议把这个包含在
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多