繁体   English   中英

HTML 框架集对齐

[英]HTML Frameset alignment

假设我在一个框架集中有 3 个框架,排列成 3 行。 框架 1 和 3 来自我的网站,框架 2(中央的)来自外部网站。 是否有一种巧妙的方法可以强制浏览器将第 2 帧中的数据居中对齐?

我发现了一个小的变通方法,它使用框架集中的框架集,该框架集在数据的两侧有 2 个空白列,但这意味着第 2 帧和第 3 帧的滚动条不对齐。

有任何想法吗?

编辑:我目前拥有的代码是:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server" />
<frameset rows="10%,65%,25%" border=0 frameborder="no">
    <frame name="nav" noresize scrolling="no" src='NavigationBar.aspx?NAVIGATION=<%=sDisplayNavigation %>'>
    <frameset cols="1*,1010px,1*">
        <frame name="lspace" scrolling="no" src="border.htm">
        <frame name= "main" scrolling="auto" src='<%=sMainTextURL%>#highlight'>
        <frame name="rspace" scrolling="no" src="border.htm">
    </frameset>
    <frame name="suggest" scrolling="yes" noresize src='<%=sSuggestURL%>'>
</frameset>
</html>

我认为您正在寻找的是一种将一些 CSS 注入另一个框架的方法,即使它来自另一个站点。

我认为如果没有服务器端脚本来请求页面并修改它,这是不可能的。

Javascript 有办法使用 window.frames[] 和使用 DOM 遍历来修改其他框架,就像对本地框架中的元素一样。 由于“同源策略”,这对您来说是个问题。 这基本上意味着从 example.com 加载的框架中的 javascript 无法访问从 foo.com 加载的框架中的 DOM。 即使您有类似的域 foo.example.com 和 bar.example.com,它们在浏览器中也被视为单独的域,因此不允许您的 javascript 访问另一个。

这也会影响使用 XMLHttpRequest 的 ajax 调用。 有一些方法可以减少这种影响,但我认为您需要能够在线路的两侧运行 javascript。

我最近尝试了类似于您正在做的事情,我想将一个站点嵌入另一个站点,但是同源策略使其不切实际。

另一种方法是服务器端而不是客户端。 创建一个代表客户端从另一台服务器请求内容的 php 脚本,然后将其作为一直在您的服务器上提供。 然后你的javascript,现在在同一台服务器上,可以用那个框架做它会做的事情。 如果其他站点使用大量 cookie 或 ajax,这可能会很棘手,但您的 php 不会有同源策略来处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM