简体   繁体   English

如何在 JavaScript 中定义函数?

[英]How can I define a function in JavaScript?

How to define a function?如何定义一个函数? I want to define name1 in the FB.api > name: name1, but I got an error in the console我想在 FB.api > name: name1 中定义 name1,但在控制台中出现错误

Uncaught ReferenceError: name1 is not defined

Here is my JavaScript code:这是我的 JavaScript 代码:

function share(platform) {
    var percent = $('.progress .percent').html().replace('%', '');
    var names = $('.progress .names').html().toUpperCase().split(' & ');
    var name1 = names[0];
    var name2 = names[1];

    var queryString =   encodeURIComponent('name1='+name1+'&name2='+name2+'&percent='+percent+'&text='+text+'&lang='+lang);
    // var json = JSON.stringify(queryString);
    var share_params = base64_encode(queryString);

    var share_url = 'http://example?';

    var url = 'https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(share_url)+share_params;

    if(platform == 'whatsapp') {
        var share_title = name1+' + '+name2+' = '+percent+'%! '+window.famobi.__('shareText');
        var url = 'whatsapp://send?text='+encodeURIComponent(share_title);
    }

    window.open(url,'name','height=400,width=600');
    return false;
}

and

function sharefb(countr,share,platform) {
    $("div.bs-example").empty();
    $("p#share").html('<div class="col-lg-12 text-center"><div class="progress progress-striped active"><div id="statusbar"><div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width:100%;"><span class="sr-only">20% Complete</span></div></div></div></div>');
    statusbar();
    var formdata = $("input#cache").val();
    var formdatav = $("input#cache").val();
    if (countr != "") {
        var formdata = formdatav.substr(0, formdatav.indexOf((countr + 1) + "."));
        if (formdata == "") {
            var formdata = $("input#cache").val();
        }
     }
    FB.api('/me/feed', 'post', {
        message: formdata,
        name: name1,
        description: "test des",
        caption: "Test app",
        link: "https://apps.facebook.com/*****/",
        picture: "http://examplepic.png"
    }, function(response) {
        console.log(response);
        if (!response || response.error) {
            alert('Error occured');
        }
        $("p#share").empty();
    });
}

Few ways to do this.很少有方法可以做到这一点。 Easiest: stick this before function share(platform) { :最简单的:在function share(platform) {之前坚持这个:

var name1;

Then change var name1 = names[0];然后更改var name1 = names[0]; to

name1 = names[0];

This defines a global var name1 (first bit) and then makes sure you don't recreate as a local variable (second bit).这定义了一个全局变量 name1(第一位),然后确保您不会重新创建为局部变量(第二位)。

So it becomes:所以就变成了:

var name1;

function share(platform) {
    var percent = $('.progress .percent').html().replace('%', '');
    var names = $('.progress .names').html().toUpperCase().split(' &AMP; ');
    name1 = names[0];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM