我目前正在为学校的网站,我很缺乏经验。
我遇到的问题是:
我有一个网页,我想使长取决于链接点击的iframe。
这部分很简单,有什么不但是iframe 中的链接上单击后作出的iframe更长。
所以,我有我做了一个外部脚本
function getObj(name)
{
if (document.getElementById)
{
this.obj = document.getElementById(name);
this.style = document.getElementById(name).style;
}
else if (document.all)
{
this.obj = document.all[name];
this.style = document.all[name].style;
}
else if (document.layers)
{
this.obj = document.layers[name];
this.style = document.layers[name];
}
}
var frame, div1;
function mainInit(){
frame = new getObj("idFrame");
}
function init2(){
div1 = new getObj("divWithTable");
div1.style.visibility = "hidden";
}
function ShowDiv(){
div1.style.visibility = "visible";
//frame.obj.height = 1000;
}
所以我有一个<body onload="mainInit()">
在我的主页和<body onload="init2()">
页面上的iframe中,其中也有一个按钮,一个内onclick="ShowDiv()"
。
有什么问题,现在是:
我不能改变iframe的长度,当我点击一个按钮,显示在它的网页div。 我需要以某种方式从第一页返回定义的iframe,所以我可以用它在第二。
只要你在同一起源,你应该能够访问链接和附加功能给他们。 :)
// Find the iframe (in this case by it's tag <iframe>)
var iframe = document.getElementsByTagName('iframe')[0];
// Get the content of the iframe
// The || means or, this is to account for the way different browser allow access to iframe content
// If you cant get the contentDocument, then it'll give you the contentWindow.document
var iframeContent = iframe.contentDocument || iframe.contentWindow.document;
// Finally we get the link elements from the iframe
// In this example all of our links have the class 'my-link', but you could get by tag name <a> (in the same way we got the iframe)
var iframeLinks = iframeContent.getElementsByClassName('my-link');
// Then add your listeners to the links
如果运行这个地方你需要一个虚拟服务器。 有很多在那里,是很容易运行。 :)
不幸的是这不是能够iframe中截取的点击除非iframe的位置是相同的域中包含文档。
这里有一个JQuery的解决方案,如果您将使用相同的域: 添加点击事件的iframe
但是,您可以检查iframe的位置时,它的变化和运行代码来改变iframe的大小。
最支持的方式这样做是把一个onload属性的iframe中。
<iframe onLoad="runSomeCode()"></iframe>
其他方式:
document.getElementsByTagName('iframe')[0].onload = function() {
// Do some stuff
}
几个iframe的onload事件的例子在这里: IFRAME SRC变化事件检测?