Javascript 在页面中插入第三方HTML(带有脚本)
我正在用合作伙伴提供的页眉/页脚HTML代码重新命名我的网站(使网站表现得像重新命名一样) 视觉上: 现有网站:Javascript 在页面中插入第三方HTML(带有脚本),javascript,html,iframe,Javascript,Html,Iframe,我正在用合作伙伴提供的页眉/页脚HTML代码重新命名我的网站(使网站表现得像重新命名一样) 视觉上: 现有网站: +---------------------+ | | | My site | | | +---------------------+ +---------------------+ | Brand Header | +---------------------+
+---------------------+
| |
| My site |
| |
+---------------------+
+---------------------+
| Brand Header |
+---------------------+
| |
| My site | variable page height
| |
+---------------------+
| Brand Footer |
+---------------------+
www-website.com:
+---------------------+
| |
| My site |
| |
+---------------------+
+---------------------+
| Brand Header |
+---------------------+
| |
| My site | variable page height
| |
+---------------------+
| Brand Footer |
+---------------------+
品牌页眉和页脚是HTML代码块,带有内联JS。还有另一个HTML块,包含脚本和CSS。它使用jQuery的一个版本和他们脚本的一部分,实际上是自己崩溃了
我所做的:在普通页面服务器端注入他们的HTML+将我的所有脚本放在
结构如下所示:
<head>
[.. their head (CSS/JS) stuff as HTML ..]
.. my CSS stuff ..
[.. fixes for their CSS stuff ..]
</head>
<body>
[.. their HTML header ..]
.. my normal body ..
[.. their HTML footer ..]
.. my JS ..
</body>
[…他们的头部(CSS/JS)内容为HTML….]
.. 我的CSS资料。。
[…修复了他们的CSS内容..]
[…他们的HTML标题..]
.. 我正常的身体。。
[…他们的HTML页脚..]
.. 我的JS。。
因此,品牌网站和非品牌网站之间的唯一区别在于,品牌网站“打开”带括号的行
注意:
- 我将CSS修复放在
以修复他们的CSS和我的CSS之间的冲突标题的末尾
- 我把我所有的JS放在最后,这样它就可以覆盖JS中其他可能的行为
height
对应于页面的总高度,即使高度是动态变化的,请参见上面的模式)。我读到这真的很难实现
在我所做的基础上,有什么可以改进的吗?或者是否有可能实现对我的站点的正确访问?
还是别的什么?使用css,保持iframe的容器大小实际上非常容易
iframe{
position:absolute;
top:0;
left:0;
bottom:0;
right:0;
}
在您提到的评论中,这是一个Django站点。我只是对这个环境或Python不够熟悉,但在查看了他们的站点之后,它确实允许服务器端处理。您可以编写一个python脚本来检索和解析旧页面,以提取页眉/页脚html,然后将该内容注入到新的html文件中。您是否看到另一个站点的内容发生了很大变化,您需要同步到这些内容?您的站点是否只是由静态文件和所有处理的客户端组成,还是您也在使用某种服务器端servlet/jsp?我不太喜欢iframe的想法,但我对其他选择也不感兴趣…@ZacWolf这是Django的网站。我使用服务器端代码在我的“常用”页面中注入品牌HTML片段。我没有使用phython来了解可用的HTML解析器库,但由于此环境允许服务器端处理,因此您可以构建一个python脚本来检索和解析旧页面以提取页眉/页脚HTML,然后将该内容注入新的html文件中。任何时候,只要有人要求一个页面,你的代码就可以查看原始页面是否有更改,然后重新构建新页面,否则它只提供新页面。我不明白你的CSS:在我的浏览器中,这只是将iframe定位在左上角。我还尝试了一个包含div的位置:relative,同样的故事。事实上,我可以做服务器端处理,我猜你在最后一段中描述的实际上就是我现在所做的,正如我在问题中试图解释的那样。我更新了我的问题,使事情更清楚,并解释了我已经做了什么。CSS基本上使iFrame扩展以填充其父对象,因此如果iFrame是BODY的子对象,它将导致iFrame扩展以填充屏幕。如果它是div的子级,那么该div需要具有iFrame可以扩展到的高度/宽度。但正如你所说的,我认为这是对你所要完成的事情的一个负面评价。你最好编写一个服务器端应用程序,对旧站点的html进行url提取,解析它,然后用你自己的内容标签替换它们的内容标签。有很多方法可以做到这一点,如果父站点经常更改,那么您需要实时执行服务器查询(这不是最好的主意),或者按照某种计划执行。