オートサムネイル生成後に 'xthumbnail-orig-image' 属性が挿入される問題の対処方法
HOME > Expression Webを使ってみよう > Expression Web FAQ
概要
スキーマがXHTMLではなくHTMLの場合、オートサムネイル生成後に 'xthumbnail-orig-image'属性が挿入されてしまい、HTMLエラーが発生してしまう問題の対処方法を解説します。
詳細
Expression Webインストール直後の既定のスキーマは、XHTML 1.0 Transitional です。
この状態のままWebページを作成し、オートサムネイル機能を利用した場合、コードビューにはオリジナルサムネイル画像の情報がコメントとして出力されます。
(オートサムネイル機能については「Expression Web 標準ガイドブック」P.73~参照)
<a
href="metrotown.jpg">
<img
alt="メトロタウン" src="metrotown_small.jpg"
width="160"
height="120"
class="style1"
/><!--
MSComment="autothumbnail" xthumbnail-orig-image="metrotown.jpg" --></a>
一方、HTML文書の場合、オートサムネイルを利用すると、以下のように 'xthumbnail-orig-image'属性が挿入され、「互換性のないHTMLが検出されました」というエラーが発生してしまいます。
<a
href="metrotown.jpg">
<img
alt="メトロタウン" src="metrotown_small.jpg"
width="160"
height="120"
xthumbnail-orig-image="metrotown.jpg"
class="style1"></a>

対処方法
'xthumbnail-orig-image'属性は余分な記述であるため、この問題を解決するために、
Expression Web VBAを使ってWebサイト内のこの属性を一括削除することができます。
(FrontPage MVPのChristoph
Schneegansさんがソースを提供していただきました! Thanks!)
モジュールを登録する
Visual Basic Editorを起動します。
[ツール]→[マクロ]→[Visual Basic Editor]をクリックします。
もしくは、Alt+F11をクリックします。
左上の「標準モジュール」を展開し、「モジュール1」をダブルクリックします。

以下ようなモジュール1ウィンドウが開きました。

ここに、以下のソースを貼り付けます。
Sub RemoveXThumbnailAttribute()
Dim wf As WebFile
Dim pw As PageWindow
Dim img As ImgElement
For Each wf In ActiveWeb.AllFiles
If wf.Extension = "htm" Or wf.Extension = "html"
Then
Set pw = wf.Edit(PageViewNoWindow)
For Each img In
pw.Document.all.tags("img")
img.removeAttribute
"xthumbnail-orig-image"
Next
If pw.IsDirty Then pw.Save
pw.Close
End If
Next
End Sub
すると、このようになります。貼り付けたら、右上の閉じるボタンを押します。

先ほど貼り付けたモジュールを保存します。保存が終わったら、Microsoft Visual Basicを終了しましょう。

マクロを実行する
- Webサイトを開いた状態で、[ツール]→[マクロ]→[マクロ]をクリックします。
- [マクロ]ダイアログボックスが表示されました。
先ほどのVBAのマクロ名、RemoveXThumbnailAttribute が登録され、選択されていることを確認し、[実行]ボタンをクリックします。


