3

Magento の CMS ページの入力要素にプレースホルダー属性を追加するのに問題があります。このようなもの:

<input type="text" placeholder="Hello" />

CMS ページの保存に進みますが、Magento がプレースホルダー属性を上書きし、HTML で通常見られるプレースホルダーが表示されないように思われます。

これを達成する方法はありますか?

4

1 に答える 1

3

これは少しトリッキーです。データベース テーブルを確認すると、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 のエディターに追加するための簡単なメカニズムを提供する新しいモジュールがあります。

于 2013-07-22T05:53:46.100 に答える