iframe的src中的参数?iframe标签的src属性
其实iframe的src中的参数的问题并不复杂,但是又很多的朋友都不太了解iframe标签的src属性,因此呢,今天小编就来为大家分享iframe的src中的参数的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
...中,获取被调用的页面的高度,并作为这个iframe的高度
采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域、跨域两种情况。
由于客户端js使用浏览器的同源安全策略,跨域情况下,被嵌套页面如果想要获取和修改父页面的DOM属性会出现权限不足的情况,提示错误:Permission denied to access property'document'。这是因为除了包含脚本的文档载入的主机外,同源策略禁止客户端脚本链接到其他任何主机或者访问其他任何主机的数据。这意味着访问一个web服务的javascript代码通常只有在它也驻留在Web服务本身所在的同一个服务器的时候才有用。
所以在跨域情况下,我们遇到的问题就是:父窗口无法获得被嵌套页面的高度,而且被嵌套页面也无法通过驻留在其服务器上的js修改父窗口Dom节点的属性。所以我们需要一个媒介,来获得被嵌套页面的高度同时又能修改主界面iframe节点的高度。
思路:现有主界面main在域a下,被嵌套页面B在域b下,被嵌套页面B又嵌套一个在域a下的中介页面A。当用户打开浏览器访问mail.html的时候载入B,触发B的onload事件获取其自身高度,然后B载入A,并将高度值作为参数赋值给A的location对象。这样A就可以通过location.hash获得B的高度。(location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url。而location.hash则可以用来获取或设置页面的标签值。比如的location.hash="#admin"。利用这个属性值可以做一些非常有意义的事情。)。由于A和main页面同域,所以可以修改main的dom节点属性,从而达到我们设置iframe标签高度的目的。
关键代码:
iframe主页面:main.html
<iframe id="iframeB" name="iframeB" src="www.b.com/B.html" width="100%" height="auto" scrolling="no" frameborder="0"></iframe>
iframe嵌套页面:B.html
<iframe id="iframeA" name="iframeA" src="" width="0" height="0" style="display:none;"></iframe>
<script type="text/javascript">
function sethash(){
hashH= document.documentElement.scrollHeight;//获取自身高度
urlC="www.a.com/A.html";//设置iframeA的src
document.getElementByIdx_x_x_x("iframeA").src=urlC+"#"+hashH;//将高度作为参数传递
}
window.onload=sethash;
</script>
中介页面:A.html
<script>
function pseth(){
var iObj= parent.parent.document.getElementByIdx_x_x_x('iframeB');//A和main同域,所以可以访问节点
iObjH= parent.parent.frames["iframeB"].frames["iframeA"].location.hash;//访问自己的location对象获取hash值
iObj.style.height= iObjH.split("#")[1]+"px";//操作dom
}
pseth();
</script>
同域情况下就不用多说了,直接在被嵌套的页面B中获取其自身高度并操作其父窗口main的dom属性即可。
如何用iframe代码显示调用网页的指定部分
以百度主页为例,去掉百度的Logo部分,代码与效果如下:
< html>
< head>
<title>Iframe标签显示目标网页的指定区域,方法1</title>
</head
< body>
< div align="center">
< iframe width="800" height="600" src="" scrolling="no" hspace="-100" vspace="-150"></iframe>
</div></body>
</html>
扩展资料:
Iframe的一些属性:
1、marginheight属性规定框架内容与框架的上方和下方之间的高度,以像素计。
2、maiginweidth属性规定框架内容与框架的左侧和右侧之间的高度,以像素计。
3、vspace y方向显示的区域,负值为从目标网页最上面开始截取的部分,正值为y值+从上部开始内容区域。
4、hsapce x方向显示的区域,负值为从目标网页左侧开始截图的部分,正值为x值+从左侧开始内如区域。
5、src目标网页的地址,可以为html,asp,文本等。
6、frameborder框架边框,0为无边框(画中画效果)。
参考资料来源:百度百科-iframe
JavaScript如何修改页面中iframe的属性值
页面一刷新,所有JS对页面做的修改都会恢复的,如果楼主想让浏览器记住JS设定的width之类的数据(即使刷新页面,也依然能够记住刷新前的JS设置),目前来讲:
1、HTML5有客户端数据储存的方法,但是支持的浏览器不多,jQuery库的Data对象实现了部分的HTML5客户端储存的功能,而且多浏览器支持;
2、简单点的办法就是使用URL参数,即在使用JS对页面进行修改(比如重新设定页面中某个iframe的width)时,同时把设定的值添加到页面的URL中,这样当页面刷新时,设置的值并没有丢失,只要通过适当的方法,把这些值再读出来,并重新设置,就可以模拟保持设置。举个简单例子:
<html>
<head>
<script>
//储存当前页面的JS对iframe做出的设置
var settings={};
function autoSet(){
//处理URL,如果带有初始设置,则读取
var sval= location.href;
if(sval.indexOf('?')){
var vals= sval.split('?')[1];
if(vals.indexOf('&')){
vals= vals.split('&');
for(var i=0;i<vals.length;i++){
settings[vals[i].split('=')[0]]= vals[i].split('=')[1];
autoSetVal(vals[i].split('=')[0],vals[i].split('=')[1]);
}
}else{
settings[vals.split('=')[0]]= vals.split('=')[1];
autoSetVal(vals.split('=')[0],vals.split('=')[1]);
}
}
}
function autoSetVal(tag,val){
var ifm= document.getElementById('ifm1');
ifm[tag]= val;
}
function setVal(tag,val){
settings[tag]= val;
fixURL();
}
function getSURL(){
var sval= location.href;
if(sval.indexOf('?')){
return sval.split('?')[0];
}else{
return sval;
}
}
function fixURL(){
var url= getSURL();
if(settings!={}){
url+='?';
var vals= [];
for(var i in settings){
vals.push(i+'='+settings[i]);
}
url+= vals.join('&');
}
location.href= url;
}
window.onload= function(){
autoSet();
}
</script>
</head>
<body>
<iframe id="ifm1" src="" name="x" width="750px" height="500px"></iframe><br/>
<input type="text" value="750" id="sw"><input type="button" value="设置宽度" onclick="setVal('width',document.getElementById('sw').value)"><br/>
<input type="text" value="500" id="sh"><input type="button" value="设置高度" onclick="setVal('height',document.getElementById('sh').value)"><br/>
</body>
</html>
好了,文章到这里就结束啦,如果本次分享的iframe的src中的参数和iframe标签的src属性问题对您有所帮助,还望关注下本站哦!