js 怎么在另一个页面执行前一个页面
在b.html点击按钮能够执行a.html的a(),而不是调用,调用的话是吧a()函数加到b.html中,这样a.html不能实现刷新,该怎么写方法? 展开
你的这种需求叫做多标签/页面同步。
比如:我站点所有的页面都有广告。现在用户打开了属于我的网站下的三个页面A、B和C,都在右下角有个相同的广告区域。用户当前的页面是C,用户关闭了这个广告。此时,为了让用户有更好的体验,我希望A和B页面的广告也能自动关闭。不想让用户回到A页面的时候,看到的依然有打开的广告。这种情况我们该怎么办呢?
其实这个问题非常简单。
我们不可能在C页面中直接通过调用某个函数,来控制A和B页面的行为。
但我们可以通过间接的方法来“告知”A和B页面,来达到类似的效果。
步骤如下:
当C页面用户点击关闭广告时,向cookie中写入一个特定的cookie值,比如user_close_ad。
A和B页面,每隔100毫秒,检查一次cookie中有没有名字叫做”user_close_ad“的cookie。
如果检查到这个cookie,就执行相应的动作。
这个跟执行父页面有什么关系么?没看懂cookie怎么执行方法
这种方法是万能的。是不是父页面都没有关系。
举个例子:
b.html中的代码片段
btn.onclick = function(){
setCookie('need_refresh', 'yes');//setCookie的具体代码我就不写了,百度一大堆。
}
然后是a.html中的代码片段
setInterval(function(){//每隔100毫秒检查一次。
var flag = getCookie('need_refresh');//getCookie跟setCookie一样,都百度一下。
if(flag === 'yes'){
//检查到yes说明b.html页面让我刷新了。
a();//执行你刷新的方法。
removeCookie('need_refresh');//删除cookie避免重复执行。
}
}, 100);
当然,这种方法的解决方案不是特别爽。但没有办法,如果你这两个网页是分别打开的话,现在兼容性最好的方案就是这个了。但是如果你的两个页面是用iframe给搞在一起的,并且同源。那么还有更简单的办法。
不过我得知道你这几个页面是如何放到一起的。结构什么样。谁嵌套了谁。
不过如果你知道window.parent window.top这些属性的话。你就应该比较清楚跨iframe进行js交互的方法了吧。
两个不同的页面,可以放在一个页面中,通过iframe方式引用。这句话没怎么懂,两个页面怎么能放在一个iframe?
我现在就是通过a.html页面点击按钮弹出一个窗口,这个窗口的内容是b.html,但是怎么实现?