如何用JS实现按快捷键后刷新网页中用iframe嵌入的子页面?

假如一个网页中用iframe嵌入了一个子页面,代码如下:
<iframe id="test" frameborder=0 width=250 height=250 marginheight=0 marginwidth=0 scrolling=no src="e.html"></iframe>

请问如何写JS实现按回车键刷新这个子页面?请给出兼容性好的详细JS代码!

第1个回答  2015-05-09
同域下可以这样实现
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<iframe id="test" frameborder=0 width=250 height=250 marginheight=0 marginwidth=0 scrolling=no src="a.html"></iframe>
<script type="text/javascript">
// 兼容IE事件绑定
function addEvent(elem, eventName, func) {
if (!elem) return;
if (window.addEventListener) {
elem.addEventListener(eventName, func, false);
} else if (window.attachEvent) {
elem.attachEvent('on' + eventName, func);
}
}

function onKeyUp(e) {
e = e || window.event;
var iframe = document.getElementById('test');
var keyCode = e.keyCode;
if (keyCode === 13) {
iframe.contentWindow.location.reload();
}
}

addEvent(document.body, 'keyup', onKeyUp);
</script>
</body>
</html>追问

试了,根本不对啊

追答

是怎么不对,回车没反应?浏览器控制台有报错么?这个必须是同域下,即页面的域,与iframe嵌入的网页的域相同。

追问

点回车没反应啊!

我的父页面和iframe嵌入的子页面都只需要在本地浏览,算同域么?父页面和子页面在同一文件夹下。

假如一个名为c.html的父页面要嵌入一个名为e.html的子页面,要求焦点在父页面时按回车键就可以刷新子页面。请给出完整代码,万分感谢!

追答

文件之间的操作是按照跨域处理的,必须把文件放在web容器里,用localhost去访问。

追问

因为我只需要本地浏览,就没有用浏览器打开c.html后按回车就能刷新e.html的方法么?

追答

把原来的删除再创建一个新的

// 兼容IE事件绑定
function addEvent(elem, eventName, func) {
if (!elem) return;
if (window.addEventListener) {
elem.addEventListener(eventName, func, false);
} else if (window.attachEvent) {
elem.attachEvent('on' + eventName, func);
}
}

function onKeyUp(e) {
e = e || window.event;
var iframe = document.getElementById('test'),
keyCode = e.keyCode,
src = iframe.src,
newIframe;
if (keyCode === 13) {
//iframe.contentWindow.location.reload()
newIframe = document.createElement('iframe');
newIframe.id = 'test';
newIframe.frameBorder = '0';
newIframe.width = '250';
newIframe.height = '250';
newIframe.marginheight = '0';
newIframe.marginwidth = '0';
newIframe.scrolling = 'no';
newIframe.src = src;
document.body.removeChild(iframe);
document.body.appendChild(newIframe);
}
}
addEvent(document.body, 'keyup', onKeyUp);

本回答被提问者和网友采纳

js对iframe内外(父子)页面进行操作
在JavaScript中,操作iframe主要涉及两种情况:在iframe内部控制外部代码,以及在父页面对子iframe的操作。关键的API包括iframe的contentWindow和contentDocument,它们分别获取iframe的window对象和document对象,类似于DOM节点的getElementsByxxx方法。获取iframe内容的方式有多种,可以通过iframe对象的Name属性结合window...

html里面,点击按钮时,怎么使用js或jq给iframe里面的表单赋值和提交_百 ...
('#objId', parent.document);\/\/ 搞定...在父页面 获取iframe子页面的元素 代码如下:("#objid",document.frames('iframename').document)(document.getElementById('iframeId').contentWindow.document.body).html()显示iframe中body元素的内容。("#testId", document.frames("iframename").document)...

如何在子页面得到其所在的iframe
1、首先需要在body中增加一个iframe,可以给这个标签设置宽高,还可以设置位置。2、然后在前台界面的某个位置,增加一个点击事件onclick。3、然后点击事件,总要对应的设置一个事件方法。4、然后在方法内增加iframe的重载url,重新给src赋值。5、最后运行html界面,点击前台的按钮,触发刷新iframe的方法,...

怎样用F5只刷新嵌在jsp中的iframe
如果单是这样操作是不行的,你需要用js写一个按钮监听事件,监听f5,如果按下了f5,那么你就执行把iframe的src重新写一次就可以了。

JS对Iframe内外页面进行操作
利用location对象的hash值,通过它传递通信数据。在父页面设置iframe的src后面多加个data字符串,然后在子页面中通过某种方式能即时的获取到这儿的data。子页面向父页面传递数据 利用一个代理iframe,它嵌入到子页面中,并且和父页面必须保持是同域,然后通过它充分利用上面同域通信方式的实现原理,把子页面...

iframe如何刷新嵌套他的页面
<iframe id = 'frame1' name = 'frame1' src = '' \/> 你的js:var frame = document.getElementById('frame1');frame.src = '你要刷新的ulr';

在一个网页中嵌入显示另一个网页?
首先用FRONTPAGE打开你需要嵌入网页的那个网页然后选择“插入”,在弹出的下拉菜单里选择“嵌入式框架”就会弹出设置框,你按要求设置即可。将一个网页插入到另一个网页里边,怎么做?1、一个网站的内容嵌套到另一个网页中可以使用iframe框架实现,如下图,这样子就可以把对方的网页嵌套到你的网页里面展示了...

请问大神,我想要在iframe外边操作iframe内部页面的按钮,但是iframe内...
} <\/script> 然后在iframe里面显示的那个页面上写js方法:<script> function FilterSearch(){ \/\/这里面写你要获得当前页面元素的信息。\/\/例如,你给这个按钮一个id,则 id.onclick=function(){ \/\/点击按钮要触发的事件 } } <\/script> 这样就实现了在iframe外面执行iframe里面按钮的方法,上面的...

如何用js实现将一个页面内嵌到另一个页面
很简单,如果是普通页面,就在A页面里用<iframe>这个标签即可 如果是SAP,那就直接在A页面里随便找个DIV,document.getElementById('divId').innerHTML = A即可

js 怎么在iframe外执行iframe里面的方法
实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法。比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数AFUN();那么只要在C页面中写如下JS函数就可以了:window.parent.AFUN();如果AFUN()有参数也可以直接传递合适的参数进去。例如:修改父窗口...

相似回答