---
title: Storage.setItem()
slug: Web/API/Storage/setItem
tags:
  - API
  - Method
  - Reference
  - Storage
  - Web Storage
translation_of: Web/API/Storage/setItem
---
<p>{{APIRef("Web Storage API")}}</p>

<p>{{domxref("Storage")}} インターフェイスの <code>setItem()</code> メソッドはキーの名称と値を渡すと、ストレージにキーを追加する、またはキーがすでに存在する場合はキーに対する値を更新します。</p>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="syntaxbox"><em>storage</em>.setItem(<em>keyName</em>, <em>keyValue</em>);</pre>

<h3 id="Parameters" name="Parameters">引数</h3>

<dl>
 <dt><em>keyName</em></dt>
 <dd>作成または更新したいキーの名称を持つ {{domxref("DOMString")}}。</dd>
 <dt><em>keyValue</em></dt>
 <dd>作成または更新するキーに対して渡したい値を持つ {{domxref("DOMString")}}。</dd>
</dl>

<h3 id="Returns" name="Returns">戻り値</h3>

<p><em>戻り値なし。</em></p>

<h3 id="Returns" name="Returns">例外</h3>

<p><code>setItem()</code> は、ストレージが満杯である場合に例外が発生します。特に Mobile Safari (iOS 5 以降) では、ユーザがプライベートモードに入っているときに必ず例外が発生します (Safari はプライベートモードで、クォータを 0 バイトに設定します。一方他のブラウザは別のデータコンテナを使用して、プライベートモードでもストレージを使用できます)。<br>
 従って開発者は、<strong><code>setItem()</code> で発生する可能性がある例外を常にキャッチする</strong>ようにしてください。</p>

<h2 id="Example" name="Example">例</h2>

<p>以下の関数はローカルストレージに 3 個のデータアイテムを作成します。</p>

<pre class="brush: js">function populateStorage() {
  localStorage.setItem('bgcolor', 'red');
  localStorage.setItem('font', 'Helvetica');
  localStorage.setItem('image', 'myCat.png');
}</pre>

<div class="note">
<p><strong>注記</strong>: 実際の例として、<a href="https://mdn.github.io/dom-examples/web-storage/">Web Storage Demo</a> をご覧ください。</p>
</div>

<h2 id="Specifications" name="Specifications">仕様</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">策定状況</th>
   <th scope="col">コメント</th>
  </tr>
  <tr>
   <td>{{SpecName('Web Storage', '#dom-storage-setitem', 'setItem()')}}</td>
   <td>{{Spec2('Web Storage')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>機能</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari (WebKit)</th>
  </tr>
  <tr>
   <td>localStorage</td>
   <td>4</td>
   <td>3.5</td>
   <td>8</td>
   <td>10.50</td>
   <td>4</td>
  </tr>
  <tr>
   <td>sessionStorage</td>
   <td>5</td>
   <td>2</td>
   <td>8</td>
   <td>10.50</td>
   <td>4</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>機能</th>
   <th>Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Phone</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>基本サポート</td>
   <td>2.1</td>
   <td>{{CompatUnknown}}</td>
   <td>8</td>
   <td>11</td>
   <td>iOS 3.2</td>
  </tr>
 </tbody>
</table>
</div>

<p>すべてのブラウザで、localStorage および sessionStorage が受け入れる容量は異なります。<a href="http://dev-test.nemikor.com/web-storage/support-test/" title="http://dev-test.nemikor.com/web-storage/support-test/">さまざまなブラウザのストレージ容量を報告しているページ</a>があります。</p>

<div class="note">
<p><strong>注記</strong>: iOS 5.1 より Safari Mobile は localStorage データを cache フォルダに保存しており、概して空き容量が少ない場合に OS の要求により、時々クリーンアップを受けます。</p>
</div>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li><a href="/ja/docs/Web/API/Storage/getItem">Storage.getItem()</a></li>
 <li><a href="/ja/docs/Web/API/Storage/removeItem">Storage.removeItem()</a></li>
 <li><a href="/ja/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API">Web Storage API を使用する</a></li>
</ul>