39

私は次のディレクトリツリーを持っています:

+ folder1
|--- folder2
|------ page1.html
|--- page2.html

JavaScriptを使用してCookieを設定した場合page1.html、そのCookieに使用されるパスは何ですか?

編集:
それをよりよく説明させてください。ローカルファイルを使用しています。HTTPサーバーを使用するクライアントマシンを介してではなく、を介しpage1.htmlてアクセスされています。/home/user/.../folder1/folder2/page1.html

明確にするために:
一部のブラウザ(Chromeなど)は使用時にCookieを保存しないようですfile:///が、FirefoxとInternetExplorerの両方が保存します。

4

6 に答える 6

23

MDCページdocument.cookieから:

指定しない場合、[path引数]はデフォルトで現在のドキュメントの場所の現在のパスになります。

したがって、あなたの場合は、になります/folder1/folder2/


質問のタイトルに「ローカル」を指定していることを最初は知りませんでした。回答を書いているときにこれが更新されたかどうかはわかりません。file:///ブラウザによっては、プロトコルを使用して閲覧する場合、Cookieは設定されません。

于 2011-06-03T20:32:19.137 に答える
22

ブラウザはURLプロトコルのCookieを保存しませんfile://。それは、単純かつ黙って何も設定できません。したがって、これが本当に「ローカル」であり、ドメイン上にない場合は、問題が発生する可能性があります。

于 2011-06-03T20:32:22.657 に答える
11

Macを使用している場合は、次のようにChromeを閉じて再起動できます。

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-file-cookies

その後、ローカルファイルにCookieを設定できるようになります。

于 2013-06-12T18:52:54.007 に答える
5

chromeに--enable-file-cookiesを設定すると、うまくいくはずです。また、動作させるためにも「すべてのCookieを受け入れる」を設定する必要がある機能がいくつかありますが、そうする場合は、オンラインに戻る前に必ず元に戻してください。

于 2011-11-18T10:00:43.090 に答える
0

回避策として、ローカルファイルにアクセスできるTampermonkeyを使用できます(Tampermonkeyスクリプトにローカルhtmページを含める方法は?)このようにして、Tampermonkeyのストレージを使用し、関数GM_getValue(data)およびGM_setValue(data)。これをローカルHTMLページに使用しました。これは、Windowsエクスプローラーのカスタマイズ可能な代替手段として使用しました。

于 2020-03-30T14:39:30.323 に答える
0

まだ方法を探している人は、Cookieの代わりにURLパラメータを設定してみてください

オフラインで読むためにHTMLで小説をダウンロードしましたが、以前に設定したフォントサイズをCookieを使用して次の章に渡す方法がなかったため、以下に示します。

  1. 最初に、(次のチャネルへの)リンクがクリックされるたびにフォントサイズパラメータを追加する未亡人イベントリスナーを追加します
  2. 次に、パラメータ値を取得してフォントサイズを変更するwindow.onload関数

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <a href="ch-02.html" >Next Chapter</a>
    <p id="content">Hope this helps</p>
    
<script>
var fontSize = 1;
window.addEventListener("click", function(e) {
    var href = e.target.getAttribute("href");
    if(href) {
        location.href = href + "?fontSize=" + fontSize;
        e.preventDefault();
     }
})
window.onload = function(){
  var url = new URL(window.location.href);
  var value = url.searchParams.get("fontSize");
  if(value != null){
    fontSize = parseFloat(value);
    document.getElementById("content").style.fontSize = fontSize + "em";
  }
}
</script>
    
  </body>
</html>

于 2021-05-05T11:11:34.370 に答える