我有一个页面,在页面内我有一个 Iframe。目录如下:
Folder1
Folder2
IframeCSS
IframeCSS.Css
iframePage1.html
stuff.css
parentPage1.html
Run Code Online (Sandbox Code Playgroud)
在 iframePage 中,它IframeCSS.Css通过使用相对链接来引用/IframeCss/IframeCSS.Css
由于应用程序的性质,我无法通过硬代码更改 iframe 页面的链接(修改物理 iFrame Html 页面)
总的目标是让iframePage1.html看到IframeCSS.Css(和所有其他的HREF / SRC公司)通过相对链接(href="/IframeCSS/IframeCss.Css")
我尝试了几件事:
动态添加一个基本路径到 Iframe
这失败了,因为只能在 iframe 加载后添加基础,从而使链接表现得好像基础不存在一样
创建容器 Iframe 以获取 HTML,添加 Base,然后将 Contents 复制到显示的 Iframe
由于上述原因而失败,此方法也会导致加载 Google Map API 的问题
通过容器 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>
Run Code Online (Sandbox Code Playgroud)
引用同一域中的页面是根本不可能的,因为即使没有 iframe,该页面也无法使用相对文件路径:
Folder1
Folder2
IframeCSS
IframeCSS.Css
iframePage1.html
stuff.css
parentPage1.html
Run Code Online (Sandbox Code Playgroud)
如果您通过在页面中键入来访问该页面domain.com/Folder1/Folder2/IframePage1.html
将不起作用,因为 IframePage1.html 正在尝试使用以下方式访问 css:
href="/IframeCSS/IframeCss.Css"
Run Code Online (Sandbox Code Playgroud)
这意味着它正在寻找domain.com/IframeCSS/IframeCss.Css并基于我提供的文件结构,它根本不存在。
我试图做的是以某种方式简单地将整个 iframePage 的 Hrefs 和 src 更改为而不是查找domain.com/IframeCSS/IframeCss.Css,它会更正链接并搜索它domain.com/Folder1/Folder2/IframePage1.html。
解决方案是将 的内容放在Folder2根目录中,并在新根目录中创建一个包含parentPage1.html. 这样,就不需要更改文件路径。
| 归档时间: |
|
| 查看次数: |
22136 次 |
| 最近记录: |