logoWebRelease 2 ユーザーズマニュアル
Version 2.80K 版
menu
1章 はじめに
  • 1. はじめに
  • 2. WebRelease の利用環境
  • 3. 製品のライセンスについて
2章 ユーザ管理
  • 1. WebRelease のユーザ管理
  • 2. ユーザの一覧
  • 3. ユーザの登録
  • 4. ユーザの休止
  • 5. ユーザの削除
  • 6. ユーザの一括削除
  • 7. 自分のユーザプロファイルの変更
  • 8. ログイン通知メール
  • 9. TOTP ワンタイムパスワードの設定
  • 10. ログインユーザ一覧
  • 11. ログイン履歴
  • 12. ユーザ登録情報の一括処理
3章 サイトの作成
  • 1. サイトの作成
  • 2. サイト設定
  • 3. スタッフ設定
    • 1. スタッフの役割
    • 2. スタッフの登録
    • 3. スタッフの設定
    • 4. スタッフのテンプレート設定
    • 5. スタッフのフォルダへのアクセス制限
    • 6. スタッフの承認ステップ
    • 7. スタッフの解任
    • 8. スタッフの役割の一括設定
  • 4. サイトリソース
    • 1. リソースの登録
    • 2. リソースの編集
    • 3. リソースの編集 [テキストファイル]
    • 4. リソースの編集 [zip ファイル]
    • 5. リソースの編集 [画像ファイル]
    • 6. リソースの編集 [添付ファイル]
    • 7. リソース内の外部リンクチェック
    • 8. リソースの削除とダウンロード
    • 9. リソースの一括移動
    • 10. リソース名の一括設定
    • 11. リソースの一括削除
    • 12. リソースフォルダ
    • 13. リソースフォルダを Zip にする
  • 5. 辞書の管理
  • 6. 外部リンクのチェック
  • 7. サイトのエキスポート
  • 8. サイトのインポート
  • 9. サイトの閉鎖
  • 10. サイトの削除
  • 11. サイトの操作履歴
4章 FTPの設定
  • 1. FTP の設定
  • 2. プライマリチャネルの設定
  • 3. FTP 記録の参照
  • 4. FTP の実行状況
  • 5. FTP 予約(定時起動)の設定
5章 テンプレート
  • 1. テンプレート
  • 2. テンプレートの作成
  • 3. 文書型の定義
  • 4. 要素のタイプ
    • 1. 1行テキスト
    • 2. 複数行テキスト
    • 3. WYSIWYG エディタ
    • 4. ラジオボタン
    • 5. ポップアップボタン
    • 6. チェックボックス
    • 7. 年月日/時分/秒
    • 8. 目次
    • 9. リンク
    • 10. イメージ
    • 11. 添付ファイル
    • 12. XMLリーダ
    • 13. コンポーネント
    • 14. グループ項目
    • 15. セレクタ
    • 16. 各要素に共通の設定項目
  • 5. テンプレートリソース
  • 6. テンプレートの展開
    • 1. 要素参照
    • 2. 関数呼び出し
    • 3. 演算子
    • 4. リソース参照
    • 5. メソッド
    • 6. 拡張タグ wr-if wr-then wr-else
    • 7. 拡張タグ wr-switch wr-case wr-default
    • 8. 拡張タグ wr-conditional wr-cond
    • 9. 拡張タグ wr-for
    • 10. 拡張タグ wr-break
    • 11. 拡張タグ wr-variable
    • 12. 拡張タグ wr-append
    • 13. 拡張タグ wr-clear
    • 14. 拡張タグ wr-return
    • 15. 拡張タグ wr-error
    • 16. 拡張タグ wr-- と wr-comment
  • 7. WYSIWYG エディタ設定
  • 8. テンプレート・プロファイラ
  • 9. テンプレートのリビジョン
  • 10. テンプレートのダウンロード
  • 11. テンプレートのアップロード
  • 12. テンプレートの上書きアップロード
  • 13. テンプレートのフォルダ
  • 14. テンプレートの状態
  • 15. テンプレートの削除
  • 16. ページ作成後のテンプレート修正
  • 17. 入力フィールドの短縮表示
  • 18. 作成したページの一覧
  • 19. テンプレートとスタッフ
  • 20. テンプレートの操作履歴
  • 21. テンプレートを参照している目次の一覧
  • 22. テンプレートの検索
6章 コンポーネント
  • 1. コンポーネント
  • 2. コンポーネントの使用例
  • 3. コンポーネントとセレクタ
7章 ページの作成
  • 1. ページの作成
  • 2. ページのプレビュー
  • 3. 実機でのプレビュー
  • 4. ページの状態
  • 5. ページの編集
    • 1. ページタイトル/ファイル名
    • 2. フォルダ
    • 3. フォルダ中でのページの位置
    • 4. ページの状態
    • 5. 公開期間の設定
    • 6. 変更を禁止
    • 7. プレビューURL/編集画面URL
    • 8. 他のコンテンツへのリンク
    • 9. 圧縮処理
    • 10. エンコーディング
    • 11. リンク先候補
    • 12. その他の操作
  • 6. コンテンツの入力
    • 1. 複数行テキスト
    • 2. WYSIWYG エディタ
    • 3. イメージ
    • 4. 添付ファイル
    • 5. リンク
    • 6. XML リーダ
    • 7. 入力欄の追加と削除
    • 8. 入力欄の開閉
  • 7. ページリソース
    • 1. リソースの登録
    • 2. リソースの編集
    • 3. リソースの編集 [テキストファイル]
    • 4. リソースの編集 [zip ファイル]
    • 5. リソースの編集 [画像ファイル]
    • 6. リソースの編集 [添付ファイル]
    • 7. リソース内の外部リンクチェック
    • 8. リソースの削除とダウンロード
    • 9. リソースの一括移動
    • 10. リソースの一括削除
    • 11. リソースフォルダ
    • 12. リソースフォルダを Zip にする
  • 8. ページの編集完了
  • 9. ページの公開
  • 10. ページの公開終了
  • 11. ページのエキスポート
  • 12. ページの削除
  • 13. ページのリビジョン管理
  • 14. ページのリビジョン間の比較表示
  • 15. リンク元一覧
  • 16. ページ内の外部リンク一覧
  • 17. ページの公開状況
  • 18. Markdown の使い方
  • 19. コンテンツ中の語句のチェック
  • 20. ページの操作履歴
  • 21. フォルダ
    • 1. フォルダの作成
    • 2. フォルダの設定
    • 3. フォルダにテンプレートを関連付ける
    • 4. フォルダへの承認プロセスの設定
    • 5. フォルダへのアクセス制限
    • 6. フォルダ中のページの順序の指定
    • 7. カレントフォルダの移動
    • 8. フォルダのオープン/クローズ
    • 9. フォルダ以下にあるページの状態
    • 10. フォルダの削除
  • 22. バージョニングフォルダ
  • 23. ページの一括処理
    • 1. 編集完了
    • 2. 公開
    • 3. 公開終了
    • 4. 公開開始指定時刻の設定
    • 5. 公開終了指定時刻の設定
    • 6. 公開開始と終了指定時刻の設定
    • 7. ページのエキスポート
    • 8. 承認依頼
    • 9. 移動
    • 10. 削除
    • 11. 保護設定
    • 12. ページ一括登録
  • 24. ページインポート機能
    • 1. HTML ファイルのインポート
    • 2. スタイルシートのインポート
    • 3. 画像ファイルのインポート
    • 4. テキストファイルのインポート
    • 5. wrp ファイルのインポート
    • 6. 添付ファイルのインポート
    • 7. フォルダのインポート
    • 8. ZIP ファイルのインポート
    • 9. 既存のページへの上書きインポート
    • 10. カスタムテンプレートを使う
    • 11. インポートに伴うエラーに対処する
  • 25. 外部作成コンテンツのインポート
  • 26. スケジュール一覧
  • 27. ページの検索
8章 マルチデバイス配信
  • 1. 多チャネル化
  • 2. チャネル別コンテンツの生成
  • 3. チャネル選択機能
9章 承認プロセスの設定
  • 1. 承認ステップの定義
  • 2. 承認プロセスの定義
  • 3. 承認プロセスをフォルダに関連付ける
  • 4. 承認プロセスによる公開管理
    • 1. ページの公開承認依頼
    • 2. 承認と差戻
    • 3. 承認画面への入り方
    • 4. 承認プロセスとページの公開終了
    • 5. 承認依頼フォルダ
    • 6. 承認依頼の一括移動
    • 7. 一括承認依頼
    • 8. 一括承認
    • 9. ページの緊急公開と緊急公開終了
    • 10. 承認依頼の削除
    • 11. 進行中の承認依頼の管理
10章 その他の機能
  • 1. ダッシュボード
  • 2. 英語インタフェース
11章 システムの運用管理
  • 1. システムの状態確認
  • 2. WebRelease の停止と起動
  • 3. データのバックアップ
  • 4. メモリ設定
  • 5. メールサーバの設定
  • 6. Proxy サーバの設定
  • 7. パスワードセキュリティ設定
  • 8. TOTP 認証の有効化
  • 9. アカウントの自動閉鎖
  • 10. ログイン通知メールの設定
  • 11. システムからの通知メール
  • 12. Cookie に Secure 属性をつける
  • 13. その他のシステム設定
  • 14. 証明書のインポート
  • 15. ストレージの管理
  • 16. 操作履歴
  • 17. ログファイルのダウンロード
  • 18. ログインエラーへの対応
  • 19. WebRelease のバージョンアップ
  • 20. ライセンスのアップグレード
  • 21. 期間ライセンスコードの更新
  • 22. WebRelease の Uninstall
12章 索引
  • 1. 関数索引
    • 1. add
    • 2. allObjects
    • 3. allPages
    • 4. channel
    • 5. channelCookieName
    • 6. channelName
    • 7. codePointAt
    • 8. comma3
    • 9. concatenate
    • 10. contentType
    • 11. count
    • 12. currentTime
    • 13. divide
    • 14. encodeURI と encodeURIComponent
    • 15. encoding
    • 16. fileName
    • 17. fileSize
    • 18. find
    • 19. firstElement
    • 20. folder
    • 21. formatDate
    • 22. formatDateRFC2822
    • 23. formatDateW3CDTF
    • 24. fullURL
    • 25. gengou
    • 26. getXML
    • 27. group
    • 28. halfwidth
    • 29. hasElement
    • 30. hasMethod
    • 31. head
    • 32. indexOfPage
    • 33. isEven と isOdd
    • 34. isFirstElement と isNotFirstElement
    • 35. isFirstPage
    • 36. isLastElement と isNotLastElement
    • 37. isLastPage
    • 38. isNull と isNotNull
    • 39. isNumber
    • 40. isPreview と isNotPreview
    • 41. jstr
    • 42. kmg1000
    • 43. kmg1024
    • 44. lastElement
    • 45. lastModifiedDate
    • 46. length
    • 47. multiply
    • 48. nextElement
    • 49. nextPage
    • 50. number
    • 51. pageCreatedDate と revisionCreatedDate
    • 52. pageID
    • 53. pageRevision
    • 54. pageTitle
    • 55. pageWithPageID
    • 56. parseDate
    • 57. parseDateRFC2822 と parseDateRFC2822Relaxed
    • 58. parseDateW3CDTF
    • 59. parseHtml
    • 60. path
    • 61. prevElement
    • 62. prevPage
    • 63. previewClock
    • 64. previewLanguage
    • 65. quote
    • 66. remainder
    • 67. replaceAll と replaceFirst
    • 68. resourceURL
    • 69. resourceWithName
    • 70. rtlCount
    • 71. rtlRatio
    • 72. scheduledEndDate
    • 73. scheduledStartDate
    • 74. searchText
    • 75. setScale
    • 76. siteTimeZone
    • 77. sort
    • 78. split
    • 79. startsWith と endsWith
    • 80. string
    • 81. stripTags
    • 82. substring
    • 83. subtract
    • 84. suffix
    • 85. tail
    • 86. templateName
    • 87. thisPage
    • 88. toEntityRef
    • 89. toLowerCase と toUpperCase
    • 90. trim
    • 91. unescapeEntities
    • 92. unsplit
    • 93. width と height
  • 2. オブジェクト索引
    • 1. Channel オブジェクト
    • 2. CheckBox オブジェクト
    • 3. Folder オブジェクト
    • 4. HTMLComment オブジェクト
    • 5. HTMLDataNode オブジェクト
    • 6. HTMLDocument オブジェクト
    • 7. HTMLElement オブジェクト
    • 8. HTMLElements オブジェクト
    • 9. HTMLTextNode オブジェクト
    • 10. Page オブジェクト
    • 11. Selector オブジェクト
    • 12. XMLFeed オブジェクト
13章 Appendix
  • 1. Exif Orientation の扱いについて
  • 2. WebP 形式の画像の扱いについて
  • 3. CMYK / YCCK 形式の jpeg 画像について
  • 4. プレビュー時の URL 書き換え機能
  • 5. サポートされているタイムゾーン
  • 6. アカウント閉鎖ページへのアクセス制限
  • 7. 正規表現
  • 8. 要素名・リソース名・変数名・メソッド名

オブジェクト索引

HTMLDocument オブジェクト

HTMLDocument オブジェクトは parseHtml() 関数の実行結果として得られる、テキスト表現の html 文書をパースした結果のオブジェクト(DOM)です。パースした html から CSS や jQuery のセレクタのような表記を使って、特定の要素を拾い出したり、また、html を加工して形を変えるなどの操作を行うことができます。

機能は限られていますが、ブラウザ上で JavaScript を使って DOM を操作するようなことが、テンプレートの展開やメソッド中で実行可能です。このオブジェクトは、主に、外部から直接取り込んだ html 文書を、テンプレート側で加工してコンテンツを生成する場合を想定して導入されました。下記のような局面で便利に使えるのではないでしょうか。

  • 既存のコンテンツを WebRelease に取り込んで利用したい場合。メニューやナビゲーションなどはテンプレート化したいが、コンテンツの本体は現行サイトで使用されている html を有効利用することで CMS 移行コストを抑えたい。また、移行にかかる時間を節約したい。
  • テンプレート化が難しいキャンペーンや広告系の一点物のコンテンツは手書き html で作成している。それを、なるべくそのまま WebRelease に取り込みたいが、主要なメニューやナビゲーションはテンプレートから供給したい。

ページリソースの活用と、HTMLDocument を起点とする HTMLElement/HTMLElements/HTMLTextNode/HTMLComment などを使いこなすことで、外部からのコンテンツの取り込みを高度に実現できるようになるでしょう。

HTMLDocument オブジェクトの利用例を見てみましょう。

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。ごく普通の小さな html 文書です。

なお、複数行テキストの要素の値が html 文書として扱われるためには、この要素の「HTMLで記述」属性が「可」に設定されており、かつ、ページ編集画面のこの要素の入力エリアの右にある「HTML」チェックボックスがチェックされている必要があります。

htmlText という要素の値の例
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="default.css" >
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="common/script.js"></script>
</head>
<body>
<h1>こんにちは</h1>
<ul>
<li>これは HTMLDocument オブジェクトの利用例です。</li>
<li>HTMLDocument を使うと HTMLをパースして加工してから利用することができます。</li>
</ul>
</body>
</html>

この html 文書を加工して、必要な部分を組み合わせて展開の中で使用する方法を少しずつ説明してゆきましょう。

展開例(1)
<!DOCTYPE html>
<html>
<wr-variable name="document" value="parseHtml(htmlText)" />
<head>
</head>
<body>
</body>
</html>

まず、この htmlText から HTMLDocument オブジェクトを生成します。HTMLDocument オブジェクトを入手するためには parseHtml() 関数を使う必要があります。現在、それ以外の方法で HTMLDocument オブジェクトを入手することはできません。この展開例では wr-variable の変数 document に parseHtml() を実行した結果の HTMLDocument オブジェクトを取得しています。

次に head 節内に、htmlText から抽出した title を埋めこんでみましょう。

head 節内に title を埋めこむ
<!DOCTYPE html>
<html>
<wr-variable name="document" value="parseHtml(htmlText)" />
<head>
%document.head().select("title").first().outerHtml()%
</head>
<body>
</body>
</html>

document.head().select("title").first().outerHtml() という記述が加えられました。これにより、htmlText 中の title タグの部分が抽出され、その html 表現が outerHtml() メソッドにより head 節内に展開されます。各メソッドの詳細な説明は、それぞれのメソッド説明を参照してください。

title だけでなく、いろいろな要素を抽出してきて、展開することができます。style と link と script についても同じように展開してみましょう。

style と link と script も展開してみましょう
<!DOCTYPE html>
<html>
<wr-variable name="document" value="parseHtml(htmlText)" />
<head>
%document.head().select("title").first().outerHtml()%
%document.head().select("style").outerHtml()%
%document.head().select("link[rel=stylesheet]").outerHtml()%
%document.head().select("script").outerHtml()%
</head>
<body>
</body>
</html>

先の title では、複数書かれているかもしれない title タグの先頭だけを展開するために first() メソッドを使いましたが、style や link や script の場合には、複数記述されている場合にそれを全部取り込みたいので .first() で先頭のタグに限定することなくすべて展開しています。

なお、実際には、script や style などは何らかの特徴を使って展開するかどうかを決める必要があるかもしれません。select() メソッドは、CSS や jQuery のセレクタが書けるので、細かい抽出ができます。詳しくは select() メソッドの説明を参照してください。

link 要素については、rel=stylesheet の指定がある link 要素だけを抽出してきて head 節内に展開してみました。

さらに、body 内にも少し手を加え htmlText から抽出した要素を展開してみましょう。

body 内にも要素を展開してみましょう。
<!DOCTYPE html>
<html>
<wr-variable name="document" value="parseHtml(htmlText)" />
<head>
%document.head().select("title").first().outerHtml()%
%document.head().select("style").outerHtml()%
%document.head().select("link[rel=stylesheet]").outerHtml()%
%document.head().select("script").outerHtml()%
</head>
<body>
<p>これは HTMLDocument オブジェクトの使い方サンプルです</p>
<div>
<p>以下の部分は htmlText から取り込んだコンテンツです</p>
%document.body().select("h1, ul").outerHtml()%
</div>
</body>
</html>

この展開を実行してみましょう。下記のような実行結果になるでしょう。htmlText から h1 要素と ul 要素が取り込まれているのが判ります。(尚 default.css などの url は、 preview 画面では preview 用の URL が使われるため、この結果とは少し違った結果になる場合があります)

展開の実行結果
<!DOCTYPE html>
<html>
 <head> 
  <title>Hello World!</title> 
  <link rel="stylesheet" href="default.css"> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
  <script src="common/script.js"></script> 
 </head> 
 <body>
  <p>これは HTMLDocument オブジェクトの使い方サンプルです</p> 
  <div> 
   <p>以下の部分は htmlText から取り込んだコンテンツです</p>  
   <h1>こんにちは</h1> 
   <ul> 
    <li>これは HTMLDocument オブジェクトの利用例です。</li> 
    <li>HTMLDocument を使うと HTMLをパースして加工してから利用することができます。</li> 
   </ul>  
  </div>
 </body>
</html>

HTMLDocument オブジェクトのメソッド一覧

メソッド名 説明
body() body タグの部分を切り出して HTMLElement オブジェクトとして返す
getAllComments() HTML文書中にあるすべてのコメントを返す
head() head タグの部分を切り出して HTMLElement オブジェクトとして返す
html() html 文書全体を文字列で返す
nodeName() 要素の型を文字列で返す
select(selector) 指定された CSS セレクタを満たす要素を選択して返す
title() title 要素の値を文字列で返す
title(newTitle) ドキュメントの title に newTitle で指定された文字列を設定する

body()

parseHtml() を使ってパースした html テキスト中の body タグの部分を切り出して HTMLElement オブジェクトとして返します。

書式

body()

利用例 1

下記のような html 文書を考えます。

簡単な HTML テキスト
<!DOCTYPE html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>This is test<h1>
<p>It's fine today.</p>
</body>
</html>

このような html テキストが入力されている htmlText という「複数行テキスト」の要素があるテンプレートを考えます。そのテンプレートの展開またはメソッドの中で、この html テキストをパースして HTMLDocument オブジェクトを入手します。

HTMLDocument オブジェクトは parseHtml() 関数で取得します
...
<wr-variable name="doc" value="parseHtml(htmlText)" />
...

このようなコードを実行することで doc という変数に HTMLDocument オブジェクトが得られます。
次に、この doc から body タグ部分を取り出します。

body タグの部分を取り出す
...
<wr-variable name="doc" value="parseHtml(htmlText)" />
<wr-variable name="body" value="doc.body()" />
...

このようなコードを実行することで body という変数に body タグの部分に対応する HTMLElement オブジェクトが得られます。
body 部分を展開またはメソッド結果として出力する場合には、outerHtml() メソッドを使います。

切り出した body 部分を展開する
...
%body.outerHtml()%
...

実行結果は下記の用になるでしょう。

body.outerHtml() の実行結果
<body>
<h1>This is test<h1>
<p>It's fine today.</p>
</body>

body タグ自体は不要で、その内側だけ展開したい場合には outerHtml() の代わりに html() メソッドを使います。

内側だけを展開する
...
%body.html()%
...

実行結果は下記の用になるでしょう。

body.html() の実行結果
<h1>This is test<h1>
<p>It's fine today.</p>

getAllComments()

HTML文書中にあるすべてのコメントを返します。

書式

getAllComments()
戻り値:

HTMLComment オブジェクトの配列

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記入内容
<!DOCTYPE html>
<html>
<head>
<!-- コメント#0 -->
<title>Title</title>
</head>
<body>
<!-- コメント#1 -->
<p>
<!-- コメント#2 -->
今日は良い<em>天気<!-- コメント#3 --></em>です。
</p>
</body>
</html>

この html に対して文書内にあるすべてのコメントを抽出して展開に組込んでみましょう。

展開例(1)
<!DOCTYPE html>
<html>
<head><title>Title</title></head>
<body>
<wr-for list="parseHtml(htmlText).getAllComments()" variable="comment">
%comment.outerHtml()%<br>
</wr-for>
</body>
</html>

parseHtml() 関数で htmlText をパースし、getAllComments() メソッドを呼び出してコメントのリストを取得します。

getAllComments() メソッドの戻り値は HTMLComment オブジェクトの配列です。そのまま wr-for の list= に指定することができます。

個々のコメントを outerHtml() メソッドで展開しています。

実行結果は下記のようになるでしょう。

展開例(1)の実行結果
<!DOCTYPE html>
<html>
 <head>
  <title>Title</title>
 </head> 
 <body> 
  <!-- コメント#0 -->
  <br> 
  <!-- コメント#1 -->
  <br> 
  <!-- コメント#2 -->
  <br> 
  <!-- コメント#3 -->
  <br>  
 </body>
</html>

ヒント

HTMLElement オブジェクトにも同様のメソッドがあります。

head()

head() メソッドは HTMLDocument から head 要素部分を取り出します。

書式

head()
戻り値:

head 要素部分に対応する HTMLElement オブジェクトを返します。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記入内容
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<meta charset="UTF-8">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="stylesheet" href="/default.css" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<p>Hello World!</p>
</body>
</html>

この html の head 節内のコードを展開に組み込んでみましょう。

展開例(1)
<!DOCTYPE html>
<html>
<head>
%parseHtml(htmlText).head().html()%
</head>
<body>
ここには、このページのコンテンツを展開します。
</body>
</html>

parseHtml(htmlText) で htmlText をパースして HTMLDocument オブジェクトを取得します。その後、head() メソッドで head 要素を取り出してから html() メソッドで head 要素内のコードを展開に組込んでいます。

この展開の実行結果は下記のようになるでしょう。

展開例(1) の実行結果
<!DOCTYPE html>
<html>
 <head> 
  <title>Hello World!</title> 
  <meta charset="UTF-8"> 
  <link rel="shortcut icon" href="/favicon.ico"> 
  <link rel="stylesheet" href="/default.css" type="text/css"> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 </head> 
 <body>
   ここには、このページのコンテンツを展開します。  
 </body>
</html>

このような記述をすれば htmlText 中の head の部分を切り出してコンテンツに組込むことができます。この例では、head の中をすべて切り出して組込みましたが、select() メソッドを使えば、選択的に切り取ってコンテンツに組込むことが可能です。

html()

この要素の内側の各子要素の html を生成して返します。

書式

html()
戻り値:

この HTMLDocument の html 表現が文字列で返されます。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記述
<!DOCTYPE html>
<html>
<head><title>Title</title></head>
<body>
<p>
こんにちは!
<img src="a.png">
</p>
<img src="b.gif">
</body>
</html>

この htmlText の中の img 要素だけを削除した html を生成して展開結果としてみましょう。

展開例(1)
<wr-variable name="doc" value="parseHtml(htmlText)" />
%doc.select("img").remove()%
%doc.html()%

最初に parseHtml() 関数を使って htmlText をパースし HTMLDocument オブジェクトを生成します。生成した HTMLDocument オブジェクトは doc という変数に保持しておきます。 doc の中にある img 要素を select("img") で抽出し、remove() を実行してすべて削除します。 最後に doc.html() メソッドで、img 要素が削除された後の html を生成して展開結果としています。 この展開例の実行結果は下記のようになるでしょう。

展開例(1)の実行結果
<!DOCTYPE html>
<html>
 <head> 
  <title>Title</title> 
 </head> 
 <body> 
  <p> こんにちは! </p>  
 </body>
</html>

ヒント

html() メソッドで要素の html 表現を生成すると、エスケープが必要な文字、例えば & や < > などは、状況に応じて適切にエスケープされた状態で返されます。メソッド名が表しているとおり、返される文字列は、妥当性のある html テキストです。さらなるエスケープ処理は必要ありません。このあたりの動作は html() メソッドと text() メソッドとで異なる点に注意してください。

nodeName()

要素の型を返します。childNodes() メソッドなどを呼び出すと、型の判らない子要素の配列が得られますが、各子要素の型を調べる時に nodeName() メソッドが役立ちます。

書式

nodeName()
戻り値:

要素の型の名前を文字列で返します。HTMLDocument オブジェクトに対してこのメソッドを呼び出すと "HTMLDocument" が返されます。

select()

select() は HTMLDocument 全体から指定された CSS セレクタを満たす要素を選択して返します。

書式

select(selector)
selector:

選択条件を指定する CSS セレクタを与えます。空文字列は与えられません。

戻り値:

条件を満たす HTMLElement オブジェクトを含んだ HTMLElements オブジェクトが返されます。

HTMLDocument オブジェクトの select() メソッドの動作は、その抽出対象が文書全体の HTMLDocument であることを除いて HTMLElement の select() メソッドと同じです。

使用方法や selector に指定可能な表現については HTMLElement の select() メソッドを参照してください。

関連項目
  • HTMLElement オブジェクト

title()

この HTMLDocument の head 節内にある title 要素の値を返します。

書式

title()
戻り値:

title 要素の値を文字列で返します。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記述
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>

この htmlText に記述されている title 要素の値を取り出すコードは下記のようになります。

parseHtml() 関数で htmlText をパースしてから title() メソッドを呼び出すことで htmlText 中の title 要素の値(内容)を取り出すことができます。

title 要素の値を取り出すコード
....
%parseHtml(htmlText).title()%
....

title(newTitle)

このドキュメントのタイトルに newTitle で指定された文字列を設定します。

書式

title(newTitle)
newTitle:

設定するタイトルを文字列で指定してください。

戻り値:

null が返されます。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記入内容
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<meta charset="UTF-8">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="stylesheet" href="/default.css" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<p>Hello World!</p>
</body>
</html>

この htmlText を、基本的にそのまま展開結果として使用するのですが、タイトルだけは、ページのタイトルに書き換えて展開を生成してみます。

展開例(1)
<wr-variable name="html" value="parseHtml(htmlText)" />
%html.title(pageTitle())%
%html.html()%

parseHtml() 関数を使って htmlText をパースし HTMLDocument オブジェクトを入手して変数 html に保持しておきます。

入手した HTMLDocument オブジェクトに title(pageTitle()) メソッドを実行し、ページに付けられているタイトル(pageTitle() 関数で取得します)をパースした html のタイトルに設定します。

最後に html.html() で、タイトルを書き換えた htmlText 全体を展開結果に使用しています。

ページのタイトルに「ページのタイトル」が指定されている場合の実行結果は下記の通りになるでしょう。

展開(1)の実行結果
<!DOCTYPE html>
<html>
 <head> 
  <title>ページのタイトル</title> 
  <meta charset="UTF-8"> 
  <link rel="shortcut icon" href="/favicon.ico"> 
  <link rel="stylesheet" href="/default.css" type="text/css"> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 </head> 
 <body> 
  <p>Hello World!</p>   
 </body>
</html>

© 2000 - 2025  FrameWorks Software, Inc.