0

この kendo オブジェクトがあり、その構成の次の部分に関心があります。

data: {
          awardTitleId: e.data.AwardTitleId,
          personId: X, //needs to be a variable
          nameId: Y //needs to be a variable
      }

personId と nameId の値を取得し、Cookie に保存します。

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

ここでの問題は、「readCookie」関数から返された値を使用するには、変数に入れる必要があるため、次のことができるということです。

data: {
          awardTitleId: e.data.AwardTitleId,
          personId: variable1,
          nameId: variable2
      }

私はこれを行うことはできません:

data: {
          awardTitleId: e.data.AwardTitleId,
          personId: readCookie("personId"),
          nameId: readCookie("nameId")
      }

私の質問は、これらの Java スクリプト関数によって返された値をコードでどのように使用するのですか? Webページの他の部分/イベントで使用できるように、それらは「グローバル変数」である必要があります。

すべての関数の外で、ページの上部でこれらの変数を宣言しようとしましたが、ID に 0 を取得し続けます。

ところで、クッキー機能は機能しています。

編集 -

関数は値を返します:

4

1 に答える 1

1

jQueryを使用しているように見えるので、準備ができている関数があれば、これらの値を次のようにデータオブジェクトに設定できます

var data: {
      awardTitleId: e.data.AwardTitleId, //wherever you get this from
      personId: null,
      nameId: null
  }

$(function(){
    data.personId = readCookie("personId");
    data.nameId = readCookie("nameId");
});

あなたのデータオブジェクトが正確にどこにあるのかはわかりませんが、できればグローバルスコープではないことを願っていますが、以前にグローバルに必要であると述べたので、そこに残しました。

personIdページの準備完了関数でandを割り当てることによりnameId、ページの存続期間中それらを保持し、Cookie からそれらを継続的に取得する必要がなくなります。

于 2013-08-30T18:54:09.867 に答える