我无法将占位符属性添加到 Magento CMS 页面中的输入元素。像这样的东西:
<input type="text" placeholder="Hello" />
我继续保存 CMS 页面,但是,在我看来,Magento 覆盖了占位符属性,从而阻止了通常在 HTML 中看到的占位符被显示。
有没有办法做到这一点?
我无法将占位符属性添加到 Magento CMS 页面中的输入元素。像这样的东西:
<input type="text" placeholder="Hello" />
我继续保存 CMS 页面,但是,在我看来,Magento 覆盖了占位符属性,从而阻止了通常在 HTML 中看到的占位符被显示。
有没有办法做到这一点?
这个有点棘手。如果你检查你的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 的编辑器中。