コードの生成と読み取り

既存のJavaScriptコードに使う文字列を作成したり、document.writelnの文字列リテラルから内容を取り出したりするツールです。処理はブラウザー内で行い、出力をHTMLとして描画しません。

  1. <p>こんにちは</p> を入力してHTMLからJavaScriptへ変換すると、文字列を引数に持つdocument.writeln呼び出しになります。< は \u003c と表記されますが、文字列としての値は同じです。
  2. HTMLから文字列配列へ変換すると、各行が1つの要素になります。AとBを別々の行に入力した場合、配列の要素は "A" と "B" です。
  3. document.writeln("A");document.writeln("B"); をJavaScriptからHTMLへ変換すると、A、改行、B、末尾の改行を含むテキストになります。結果をコピーできます。入力を編集すると古い結果は消えます。

対応する構文と改行の扱い

writelnは呼び出しごとにLFを追加

生成時はCRLFとCRをLFに統一し、末尾の空行も含めて各行を1つの呼び出しにします。入力がAなら書き込む値はAとLFです。Aの後にLFがある入力では、2つの呼び出しによりAの後にLFが2つ付きます。

逆変換の対象は呼び出しが書き込むテキストであり、JSソースの空行や字下げではありません。空のJS入力は空文字列、document.writeln("") はLFを1つ返します。配列の要素自体に改行は追加しません。\n で結合すると改行を統一した入力を復元できます。

文字列リテラルを持つ呼び出しに限定

document.writelnにシングルクォートまたはダブルクォート付きの文字列を1つ渡す直接の呼び出しに対応します。構文解析でエスケープを読み取り、プログラムは実行しません。呼び出しの間の空白やコメントは使用できます。

変数、文字列の連結、テンプレートリテラル、配列、document.write、角括弧によるプロパティアクセスは受け付けません。外側のscriptタグは除いて入力してください。&amp; などのHTML文字参照は文字列のまま残ります。

HTMLの無害化とは異なる処理

引用符、アポストロフィ、バックスラッシュ、制御文字は、JavaScriptの文字列として値を保つようにエスケープします。< のエスケープは生成コード内の直接的なscript終了タグを防ぎますが、復元したHTMLからタグや属性を削除する処理ではありません。

HTMLの検証やサニタイズは行いません。別のページでdocument.writelnを実行すると、動作を持つHTMLを挿入したり、読み込み済み文書を置き換えたりする場合があります。この古いAPIは新しいDOMコードには推奨されません。本ツール内ではコードを実行せず、変換リクエストで入力内容を送信することもありません。

HTMLとJavaScript変換の質問

任意のJavaScriptからHTMLを生成できますか?

いいえ。対応するdocument.writeln呼び出しに含まれる文字列リテラルだけを読み取ります。関数、変数、計算式は実行しません。

文字列配列に空行も入りますか?

はい。末尾を含む空行は空文字列の要素になります。CRLFとCRは行を分ける前にLFへ統一します。配列の出力には変数への代入文は付きません。

最近使ったツール: