2016-05-30 125 views
1

我已经约2天试图做一些我无法弄清楚的框架怎么做。 问题是我正在自定义Pentaho用户控制台(这是一种部署在tomcat上的web应用程序,它内部有很多iframe)。阻止来源“http:// localhost:8080”来源访问框架“http://pentaho5XXX.com”

我自定义的html是在一个带有导航水平菜单的iframe中(让我们调用iframe“A”),该菜单中有另一个iframe(让我们称之为iframe“B”)。导航的每一个链接和一些iframe“B”都加载在iframe“B”上,并且所有url指向一个域名为www.pentaho5XXX.com的托管服务器。

我正在做所有我在localhost:8080的测试。我的问题是,当我试图访问一个变量的Iframe“B”内(其中URL加载的iframe),控制台给了我以下错误:

Uncaught SecurityError: Failed to execute 'alert' on 'Window': Blocked a frame with origin " http://localhost:8080 " from accessing a frame with origin " http://pentaho5XXX.com " Protocols, domains, and ports must match.

据我所知,这是因为我我试图访问托管在不同域中的url的DOM。当我尝试使用localhost:8080网页并且iframe不加载页面时(当我将我的ip:8080/mypage冻结并且不执行任何操作时,出现此问题时,本地主机:8080它加载我一个空白页)和导航控制台给我没有错误。

我检查了一个新选项卡上的相同的网址,它适用于两个链接,所以我不知道为什么会发生这种情况。

,我可能是做错了另一件事是,我试图访问DOM变量和更改的iframe“B”的src相同IFRAME(“B”)

我会很高兴的内如果有人可以帮助我,但我会很感激你读的时间,所以无论如何谢谢你。

回答

0

由于“相同的来源策略”,您尝试执行的操作仅仅是不可能的,因此Web导航器不允许您访问“外部iframe”的属性,也不允许其内容。当服务器像本地服务器一样时,浏览器的行为可能会有所不同,但它不会让您访问iframe标记。

+0

你称之为“外部iframe”是HTML内的任何常规框架吗? –

+1

这是一个带有src属性的框架,指的是与您的域名不同的域名。 – Meshredded

+0

小草图使它有点更清晰: - Pentaho的HTML ---->我的框架 “A”(横向导航链接等) ----------->我的框架“B”是在“A”(几个链接) 我所做的是从“B”iframe更改“B”的src通过jquery访问父母做这种'$(“#iframe”, parent.document).attr(“src”,mylink);'通常工作。 我想要做的是更改src后,更改“B”iframe中页面的一些CSS属性。这可能是不可能的:l –

相关问题