JavaScript-使用新浪微博组件,分享按钮,如何获得点击事件?

小组事务管理 小组事务管理 主题:974 回复:1955

JavaScript-使用新浪微博组件,分享按钮,如何获得点击事件?

灵芸 发布于 2017-10-18 字数 1211 浏览 970 回复 2

在网站上加了一个分享微博的按钮,由于是在弹出框里边增加的,所以希望点分享按钮后将这个弹出框关闭。(无论是否真的分享了,只要点一下分享按钮就将弹出框关闭)
而这个分享按钮是通过iframe中嵌套的,无法直接获取点击事件,所以想通过本页面来处理这个问题,不知道有没有办法解决? 代码如下,直接复制就能运行,需要有jquery库。

<div id="container" ></div>

<script type="text/javascript">
$(function(){
var _w = 72 , _h = 16;
var param = {
url:location.href,
type:'6',
title:'分享的文字内容(可选,默认为所在页面的title)',
language:'zh_cn', /**设置语言,zh_cn|zh_tw(可选)*/
rnd:new Date().valueOf()
}
var temp = [];
for( var p in param ){
temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
}

$('<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>').appendTo('#container');

$('#container').click(function(){
//点击分享按钮如何触发
$(this).hide();
})
})
</script>

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

夜无邪 2017-10-28 2 楼

其实你可以使用自己后端(例如php)proxy代理实现,只不过这已经不能算是前端的事情

也就是先请求你的proxy,让proxy获取sina的html文本内容,修改html文本内容插入你所需要script,修改新浪的share事件,然后监听打开页面的关闭情况,如果页面关闭,则请求你的结束proxy代理页面,因为结束页面和你同域,so可以隐藏容器

逻辑就是

前端 代理 sina
请求按钮页面 -> 转发 -> 返回页面
修改share事件 <- 插入脚本 <-
触发share事件 -> 返回分享表单
分享提交 <-
关闭页面
监听关闭事件 -> 结束页面
隐藏容器 <-

归属感 2017-10-24 1 楼

您好,想请问这个问题您解决了吗?我也遇到了同样的问题,是腾讯qq空间的分享按钮,我获取不到点击!请教一下!