网页分享按钮js代码修改

JavaScript010

网页分享按钮js代码修改,第1张

<a

class="share"

data-sharebox="true"

data-desc="desc"

data-title="title"

data-img="imgurl"

href="#">

分享按钮的onclick:

$(".share").attr('data-sharebox')

$(".share").attr('data-desc')

$(".share").attr('data-title')

$(".share").attr('data-img')

当然,建议a标签加一个id来唯一标识

如:

<a

class="share"

id="share_1"

data-sharebox="true"

data-desc="desc"

data-title="title"

data-img="imgurl"

href="#">

则下面就用:

$("#share_1").attr('data-sharebox')

微信内置的浏览器里添加了WeixinJSBridge对象,可以通过引对象将内容分享到朋友圈,所以以下代码只在微信内置浏览器中有效。

var shareToWeixinFriend =  function(data, cb)

{

    if (typeof WeixinJSBridge == 'undefined') {

        return false

    }

    else {

        WeixinJSBridge.invoke('shareTimeline', {

            'img_url': data.imgurl || '', // 图片url地址

            'link': data.url, // 文章地址,此内容分享到朋友圈后可以点击跳转到此地址

            'desc': data.desc,

            'title': data.title

        }, function(d) {

            // 返回res.err_msg取值,d还有一个属性是err_desc

            // share_timeline:cancel 用户取消

            // share_timeline:fail 发送失败

            // share_timeline:confirm 发送成功

            WeixinJSBridge.log(d.err_msg)

            cb && cb(d.err_msg)

        })

    }

    return false

}

另外在微信内置浏览器中可以通过weixin://链接直接查看某个微信号的资料,例如:

<a href="weixin://profile/gh_9261dce78e9f">挖段子冷笑话</a>

其中 gh_9261dce78e9f 是微信号

在各种浏览器中存在三种事件模型:原始事件模型,DOM2事件模型,IE事件模型。

其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE以外的所有主流浏览器支持.

原始事件模型:

在原始事件模型中(也有说DOM0级),事件发生后没有传播的概念,没有事件流。北大青鸟http://www.kmbdqn.com/认为事件发生,处理,结束,就这么简单。监听函数只是元素的一个属性值,通过指定元素的属性值来绑定监听器。书写方式有两种:

(1)HTML代码中指定属性值:

(2)在js代码中指定属性值:document.getElementsByTagName(‘input’)[0].onclick=func

优点:所有浏览器都兼容

缺点:

1.逻辑与显示没有分离

2.相同事件的监听函数只能绑定一个,后绑定的会覆盖掉前面的

3.无法通过事件的冒泡、委托等机制。

DOM2事件模型

此模型是W3C制定的标准模型。W3C制定的事件模型中,一次事件的发生包含三个过程:

(1)事件捕获阶段。事件被从document一直向下传播到目标元素,在这过程中依次检查经过的节点是否注册了该事件的监听函数,若有则执行。

(2)事件处理阶段。事件到达目标元素,执行目标元素的事件处理函数.

(3)事件冒泡阶段。事件从目标元素上升一直到达document,同样依次检查经过的节点是否注册了该事件的监听函数,有则执行。

所有的事件类型都会经历"事件捕获阶段"但是只有部分事件会经历"事件冒泡阶段"阶段,例如submit事件就不会被冒泡。

e.target与e.currentTarget是干什么的?

e.target获取当前实际触发事件节点,e.currentTarget获取获取当前监听节点。

11111

$('div').on('click',function(e){console.log(e.currentTarget)console.log(e.target)})

如果点击span的输出:

li对象

span对象

点击li的非span区域,输出

li对象

li对象

preventDefault与stopPropagation是干什么的