1

JavaScript を使用して Cookie の値を設定するのは初めてで、両方の知識は基本的なものですが、JQuery の微調整には慣れています。

要約すると、法律で Cookie ポリシーを表示する必要がある Web サイトに取り組んでいます。

jquery で制御された div コンテナーをメッセージといくつかのボタン (「後で通知」と「設定」) とともにポップアップするサードパーティのソリューションがあります。ユーザーが設定をクリックすると、「保存して閉じる」か、セキュリティ レベルを変更でき、ポップアップが消えます。

このサード パーティのソリューションを微調整し、「同意する」ボタンを追加しました。これにより、ユーザーは「デフォルト」の Cookie 設定を確認して、サイトの使用を続行できます。

ここまでは順調ですね!

この 3 番目の部分のソリューションでは、次の基本的な値を使用して Cookie に書き込みを行っていることがわかっています。

クッキー名:wsjnudge_javascript:jQuery_ws.jpecrJs.display(jQuery.ws.jpecrJs())_= true;

この値が に設定されているtrue場合、Cookie 設定の変更を促すポップアップ メッセージは、Cookie の有効期限が切れるまで表示されません。

問題は、Cookie 名の名前にコロン ( : ) が含まれていることです。javacript を介して Cookie 名を解析すると、次の名前の Cookie が作成されます。

wsjnudge_javascript%253AjQuery_ws.jpecrJs.display(jQuery.ws.jpecrJs())_

したがって、コロン ( : ) は次のように置き換えられます%253A

この Cookie の値を設定し、コロンをエンコードしようとする Jquery / JavaScript コードを少し書きました。

最初に変数を設定します。

var acceptCookieEncode = encodeURIComponent
 ("wsjnudge_javascript:jQuery_ws.jpecrJs.display(jQuery.ws.jpecrJs())_");

そして、クリック機能を使用して Cookie に書き込み、ポップアップを閉じます。

jQuery(document).on('click','.continue',function(){

jQuery.cookie( acceptCookieEncode, 'true', { expires: 365 });
jQuery('#wsjnudge').remove();

したがって、要約すると、クローズ機能は機能していますが、コロンのために Cookie 名が正しくないため、実際には、値を作成して間違った Cookie 名に設定しています。

base64 を使用する必要があるかもしれないことは理解していますが、これを実装する方法がまったくわかりませencodeURIcomponentん。また、URI を正しく解析するために を正しく使用していないことは明らかです。

このメッセージの形式が正しくない場合は、お詫び申し上げます。初めての投稿者ですが、StackOverflow の常連ユーザーです。ご協力いただきありがとうございます。

ダン。

4

1 に答える 1