问题场景:
我有一个页面结构,包括 header container(内容主体) footer 。由于内容主体需要独立打开(比如新增表单,不能包括 header和footer,只需要 container 内容),故将页面分为两部分。
一部分为包含 header 和 footer 的 iframe。内容主体放到页面 a.aspx (例)中,包含container 的内容。那么当从index.aspx 中某个链接点击,跳转到 a.aspx,而我又想此时的页面效果为完整页面:
<header /> --在iframe中
<container /> --a.aspx的内容
<footer /> --在irame中
请问我又什么办法,跳转到 a.aspx后自动添加上头和尾的内容,就像它套在 iframe 中一样呢?不甚感激!
首选, 你要明白一点, iframe是什么东西?
你这样把一个完整页的header, container, footer残忍的分开, 你考虑过它们的感受吗?
如果你想这么干, 你就不能考虑用asp.net中的母版页吗?
如果你不想用母版页, 你就不能写个公共的方法, 每个XX.aspx页面都调用这个方法, Respond.wirter(html)后台生成前端的html代码吗?
你需要补习html基础、asp.net母版页的使用、asp.net生命周期等。
你好,感谢你的回答。
我也考虑过使用模板页,但是问题是,如果使用模板页,container的内容就无法独立使用了。
因为我有些功能需要只使用 不包含头尾的 container 内容为页面。
我当前的做法是: 当跳转到 a.aspx 页面,url中包含参数 isInFrame,当isInFrame=1时,js判断当前页面的 parent 是否为 ifame(固定的id),如果不是,则页面重定向到 iframe页面,并将当前 url当参数传递给 iframe,iframe接受该参数动态将该 iframe 的 src赋值为传回的url参数。
这样就会存在一个问题,页面加载完成后跳转到 iframe iframe.src="xxx";
这样当前页面就需要加载两次。
@俺不是肥熊猫: 你的container要多处使用的话, 只能单独出来,
当页面接收参数后, 你的iframe最好用js方式去创建。 如<script>documnet.write("<iframe src=... />")</script>
如果用了js判断, 你就可以自由加代码做判断了。
@问天何必: 非常感谢你的回复。 问题在于 header 和 flooter 的内容很多,如果使用 js 输出,恐怕会很麻烦。。。
当前我替换了方案,采用了模板页。
当传入参数标志不需要头尾时, 使用js将 header 和 flooter的 display 设置为 none。
首先,我们明确一点,网页,也是字符串拼出来的代码,然后交给浏览器解释的。
换句话说,只要你给浏览器的代码是它可以解释的,就是可行的。
举个例子,加入字符串中存在 "<html></html>"的字样,浏览器就知道了,这部分代码是在描述一个网页。
回答完毕。
感谢你的回答。我想可能是我的思路有问题。
我当前的需求本身就是错误的。。。