3

我无法将占位符属性添加到 Magento CMS 页面中的输入元素。像这样的东西:

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

我继续保存 CMS 页面,但是,在我看来,Magento 覆盖了占位符属性,从而阻止了通常在 HTML 中看到的占位符被显示。

有没有办法做到这一点?

4

1 回答 1

3

这个有点棘手。如果你检查你的cms_page数据库表,你会发现 Magento 实际上是用一个placeholder属性保存你的 HTML 标签。此外,如果您通过前端而不是管理界面查看页面,您会发现 Magento 呈现您的占位符属性。

问题是,Magento 的 tinymce 编辑器被配置为去除无效input属性,并且该列表尚未更新以反映 HTML5 中的更改。

如果您使用的是相当现代的 Magento 版本,您可以通过在加载 tinymce javascript之后magento 运行内联javascript 之前将以下 javascript 插入管理页面来解决此问题wysiwygpage_content = new tinyMceWysiwygSetup...警告: 我只是把它放在一起,它可能不适用于所有浏览器。买家当心,测试等。

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 回答