7

我有一个页面,在页面内我有一个 iframe。目录如下:

Folder1
   Folder2
      IframeCSS
          IframeCSS.Css
      iframePage1.html
stuff.css
parentPage1.html

在 iframePage 中,它IframeCSS.Css通过使用相对链接来引用/IframeCss/IframeCSS.Css

由于应用程序的性质,我无法通过硬代码更改 iframe 页面的链接(修改物理 iFrame Html 页面)

总体目标是通过相对链接 ( )iframePage1.html查看IframeCSS.Css(以及所有其他 href/src href="/IframeCSS/IframeCss.Css"

我尝试了几件事:

  1. 动态添加基本路径到 iframe

    这失败了,因为只能在 iframe 加载之后添加基础,从而使链接的行为就像基础不存在一样

  2. 创建一个容器 Iframe 以获取 HTML,添加 Base,并将 Contents 复制到显示的 Iframe

    由于上述原因,此方法失败,此方法也会导致加载 Google Map API 的问题

  3. 通过容器 iframe,使用 jquery,将父根附加到所有 src 和 hrefs 以更改 url

    这也失败了。

你们会建议我在这一点上做什么?

(iframe 指向同一个域并且用户需要能够在 iframe 中导航)

父 HTML:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <link rel="stylesheet" href="cmsCSS/CmsStyle.css" />
    <title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="CmsScript.js"></script>
<script src="Insights.js"></script>
</head>

<body id="Dash">
    
    <form id="form1" runat="server">
    <div id="topDash">
        <img id="something" src="img/logo.png" />

    </div>

    </form>
         <iframe id="dashBody"></iframe>
         <iframe id="iframeContainer"></iframe>
</body>
</html>
4

3 回答 3

2

使用相同的目录结构,这 -

href="IframeCSS/IframeCss.css"

没用?如果没有“/”,则将其保留在同一目录中。相反,使用“../”表示返回一个目录。所以如果你想向后移动,你可以继续添加“../”(例如:“../../../stuff.css”)。

于 2014-01-10T04:03:01.897 回答
1

引用同一域内的页面是不可能的,因为即使没有 iframe,该页面也无法使用相对文件路径:

Folder1
   Folder2
      IframeCSS
          IframeCSS.Css
      iframePage1.html
stuff.css
parentPage1.html

如果您通过键入页面来访问该domain.com/Folder1/Folder2/IframePage1.html 页面将不起作用,因为 IframePage1.html 正在尝试使用以下方式访问 css:

href="/IframeCSS/IframeCss.Css"

这意味着它正在寻找domain.com/IframeCSS/IframeCss.Css并基于我提供的文件结构,它根本不存在。

我试图做的是简单地以某种方式将整个 iframePage 的 Hrefs 和 src 更改为而不是寻找domain.com/IframeCSS/IframeCss.Css,它会更正链接并domain.com/Folder1/Folder2/IframePage1.html改为搜索它。

解决方法是将 的内容Folder2放在根目录中,并在新根目录中创建一个包含parentPage1.html. 这样,不需要更改文件路径。

于 2013-10-09T12:31:08.177 回答
0

如果您有权访问在 iFrame 内呈现的页面,那么您所要做的就是<head>在该页面上的 CSS 标记内添加您的链接。你不应该通过调用页面做任何事情。

您可以查看被自己调用的页面。所以自己做一切。JavaScript 等等。

首先创建该页面。然后将其调用到另一个页面。iframePage1.html应该在考虑将其调用到另一个页面中的 iFrame 之前完成。你不应该通过它对它做任何事情parentPage1.html

iframePage1.html 应该有它自己的<html>标签,它应该是一个可以在没有 iframe 的浏览器中查看的自我维持页面。

我觉得我有点过火了。但我想确保它被理解。

我可以在我的页面上的 iframe 中调用 google.com,它看起来与我在浏览器中单独打开它时的外观相同。

找到你正在寻找的答案我想

看看这个小提琴,右边的 iframe 有可点击的链接,你可以在 iframe 内部导航。

我将沙箱设置为只允许一定数量的东西,在这个问题之前我不知道这一点。

JSFiddle

这是我发现的页面,它告诉我一些关于沙盒的信息,听起来像是我稍后会读到的东西

也许你应该看看。

沙盒 iframe

我以为你可以在 iframe 中移动,但我了,但是使用沙盒你可以做到这一点!!!!

于 2013-10-08T19:42:48.693 回答