js 怎么在另一个页面执行前一个页面

例如我想实现ajax刷新功能,在a.html中有个刷新的方法,functiona(){//刷新}在b.html点击按钮能够执行a.html的a(),而不是调用,调用的话是... 例如我想实现ajax刷新功能 ,在a.html中有个刷新的方法,function a(){ //刷新 }
在b.html点击按钮能够执行a.html的a(),而不是调用,调用的话是吧a()函数加到b.html中,这样a.html不能实现刷新,该怎么写方法?
展开
 我来答
cainiaokan
推荐于2017-10-06 · TA获得超过2917个赞
知道小有建树答主
回答量:651
采纳率:66%
帮助的人:609万
展开全部

你的这种需求叫做多标签/页面同步。


比如:我站点所有的页面都有广告。现在用户打开了属于我的网站下的三个页面A、B和C,都在右下角有个相同的广告区域。用户当前的页面是C,用户关闭了这个广告。此时,为了让用户有更好的体验,我希望A和B页面的广告也能自动关闭。不想让用户回到A页面的时候,看到的依然有打开的广告。这种情况我们该怎么办呢?


其实这个问题非常简单。

我们不可能在C页面中直接通过调用某个函数,来控制A和B页面的行为。

但我们可以通过间接的方法来“告知”A和B页面,来达到类似的效果。


步骤如下:

  1. 当C页面用户点击关闭广告时,向cookie中写入一个特定的cookie值,比如user_close_ad。

  2. A和B页面,每隔100毫秒,检查一次cookie中有没有名字叫做”user_close_ad“的cookie。

  3. 如果检查到这个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交互的方法了吧。

Minos1990
2014-11-07 · TA获得超过159个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:193万
展开全部
js不能跨页面调用。只能在当前页使用!两个不同的页面,可以放在一个页面中,通过iframe方式引用。
追问
两个不同的页面,可以放在一个页面中,通过iframe方式引用。这句话没怎么懂,两个页面怎么能放在一个iframe?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cxtwg11
2014-11-07
知道答主
回答量:21
采纳率:0%
帮助的人:2.9万
展开全部
你b.html通过窗口打开可以实现
追问
我现在就是通过a.html页面点击按钮弹出一个窗口,这个窗口的内容是b.html,但是怎么实现?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式