`
i.wuyoo
  • 浏览: 11609 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用Frameset来实现页面包含自适应

阅读更多

我们经常有这样的需求,需要通过自己的域名来包装某个专题或者是合作方的站点,比如:为了方便记忆希望http://topic.hmzxin.com/acts/2009_girl/index.php 推广时使用girl.cdqss.com这样的域名。这通常需要两个步骤:

1、解析域名到需要包含的站点;

2、合作方对服务器进行配置以便支持新的站点。

这种方式多少还是有些麻烦,有些时候这种方式根本就无法实现,比如:我们开通个人空间允许用于导入外部的网站,然后统一通过我们的个性域名进行访问,如:yemaozi.cdqss.com是个人空间,yemaozi.cdqss.com/taobao指向我的淘宝店,yemaozi.cdqss.com/paipai指向我的拍拍店等等,我们不可能让淘宝和拍拍进行相应的配置。所以,我们使用变通的解决办法,把域名解析到我们自己的服务器,然后根据访问的目录动态的导入不同的地址,在站点下建一个文件内容如下:

  

<?php
	$host = $_SERVER['HTTP_HOST'];
	$host_match_result = preg_match('/([^\.]+)\.cdqss\.com/i', $host, $host_matches);

	//截取店铺类型
	$url = 	$_SERVER['REQUEST_URI'];
	$url_match_result = preg_match('/([^\/]+)/i', $url, $url_matches);
	
	//安全检查并获取用户名,正确的访问例子为:http://yemaozi.cdqss.com/taobao
	if(!$host_match_result || !$url_match_result){
		header('Location:http://www.cdqss.com');
		exit();
	}
	$username = addslashes($host_matches[1]); //执行转义操作;
	$shoptype = addslashes($url_matches[1]); //执行转义操作

	//查询对应的店铺地址
    //$row代表查询的结果
	//$url = $row['linkurl']; ,设$row['linkurl'] = 'http://www.taobao.com'
	$url = 'http://www.taobao.com';
	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $username;?> - 的个性店铺</title>
</head>

<frameset frameborder="no" border="0" framespacing="0">
  <frame src="<?php echo $url;?>" name="topFrame" scrolling="yes" noresize="noresize" id="topFrame" title="topFrame" />
</frameset>
<body>
</body>
</html>

这时当我们访问服务器时,就已经使用我们的域名进行访问了。Frameset可以很好的完成页面的自适应。其实使用iframe也可以实现,但是iframe在自适应的处理上非常麻烦,进行跨域访问时会有安全错误提示,所以解决很麻烦,感兴趣的可以参考下面的文章:

iframe全跨域高度自适应解决方案

 

再谈iframe自适应高度

 

Iframe高度自适应(兼容IE/Firefox、同域/跨域)

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics