Magento の CMS ページの入力要素にプレースホルダー属性を追加するのに問題があります。このようなもの:
<input type="text" placeholder="Hello" />
CMS ページの保存に進みますが、Magento がプレースホルダー属性を上書きし、HTML で通常見られるプレースホルダーが表示されないように思われます。
これを達成する方法はありますか?
Magento の CMS ページの入力要素にプレースホルダー属性を追加するのに問題があります。このようなもの:
<input type="text" placeholder="Hello" />
CMS ページの保存に進みますが、Magento がプレースホルダー属性を上書きし、HTML で通常見られるプレースホルダーが表示されないように思われます。
これを達成する方法はありますか?
これは少しトリッキーです。データベース テーブルを確認すると、Magento が実際に HTML タグに属性cms_page
を付けて保存していることがわかります。placeholder
また、管理インターフェイスではなくフロントエンドからページを表示すると、Magento がプレースホルダー属性をレンダリングすることがわかります。
問題は、Magento の tinymce エディターが無効なinput
属性を削除するように構成されており、このリストが HTML5 の変更を反映するように更新されていないことです。
かなり最新のバージョンの Magento を使用している場合は、tinymce JavaScript が読み込まれた後、 magento がインライン JavaScript を実行する前にwysiwygpage_content = new tinyMceWysiwygSetup...
、次の JavaScript を管理ページに挿入することでこれを修正できます。 警告: これをまとめただけです。すべてのブラウザーで機能するとは限りません。購入者は注意してください、テストなど。
if(tinyMceWysiwygSetup)
{
tinyMceWysiwygSetup.prototype.originalGetSettings = tinyMceWysiwygSetup.prototype.getSettings;
tinyMceWysiwygSetup.prototype.getSettings = function(mode)
{
var settings = this.originalGetSettings(mode);
settings.extended_valid_elements = 'input[placeholder|accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value]';
return settings;
}
}
更新: これらの種類の TinyMCE 設定を Magento のエディターに追加するための簡単なメカニズムを提供する新しいモジュールがあります。