神奇的BUG,小程序的后门?

来源:11-20 商品详情页面 四

runzx

2017-12-05

在测试转发分享时遇上个奇怪的情况, 实在无法分析与理解,只能求助老师:

代码这样竟然能正常运行!!:

//分享效果
onShareAppMessage: function (options) {
    var that = this;
    id="+that.data.id";
    return {
        title: '零食商贩 Pretty Vendor',
        path: 'pages/product/product?id'
    }
}

你可能会说这代码里的id、options、that都没有用上,但改成这样:

onShareAppMessage: function (options) {

    return {
        title: '零食商贩 Pretty Vendor',
        path: 'pages/product/product?id'
    }
}

就不能从转发分享的链里看到正常的产品商情。

改成下面这种也不行(不加options参数):

onShareAppMessage: function () {
    var that = this;
    id="+that.data.id";
    return {
        title: '零食商贩 Pretty Vendor',
        path: 'pages/product/product?id'
    }
}

只有第一情况,能从分享链里得到正确的产品详情页面。 虽然小程序也是报错的。

 但如果不写id="+that.data.id"及看似无用的options参数,小程序倒是不报错, 但却从分享链里得不到正确的产品详情页面!

写回答

3回答

7七月

2017-12-05

为什么that.data.id在引号里面?

0
0

7七月

2017-12-05

正常的写法不应该是‘pages/product/product?id=’+id 吗?没太看明白你的问题

0
1
runzx
这代码就是奇怪在写错后竟然能正常运行,结果也对。 我一开始也不相信, 所以专门跟踪执行,发现就是这样能出正确结果。 少了id="+that.data.id"及options参数,也不行。
2017-12-06
共1条回复

runzx

提问者

2017-12-05

报错的截图:(这时分享链能正确访问对应的产品ID的详情页面)

//img.mukewang.com/szimg/5a26235200016a6e07501334.jpg


如果不加options或 id="+that.data.id"; 得到的分享页面是:


//img.mukewang.com/szimg/5a26243a00013dd910801920.jpg


0
0

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程