我使用 Component Creator 创建了一个组件对于 Joomla 3.X
问题是网站上的工具提示显示 html 代码。例如:
<strong>Title</strong><br/>Description
相反,它们在管理员上正确显示:
Title
Description
我正在审阅文档 here和 here ,似乎可以在调用工具提示函数时定义输出格式,但组件内部没有对该函数的调用。我看到的唯一调用是 View 文件开头的 JHtml::_('behavior.tooltip');
并且不知道如何指定输出格式。
该站点位于此 URL 中:
http://50.87.185.99/colombianadederecho_blank/index.php/administradores-ph/registrarse
添加:
似乎在为每个字段构建标签时调用了代码:
<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel('document'); ?></div>
<div class="controls"><?php echo $this->form->getInput('document'); ?></div>
</div>
并且保存在title属性中:
title="<strong>Title</strong><br />Description"
因此,我认为问题出在 Javascript 函数中,可能使用 .text() jQuery 函数而不是 .html()。
检查源代码我发现了这个,但不明白为什么它不能正常工作:
window.addEvent('domready', function() {
$$('.hasTip').each(function(el) {
var title = el.get('title');
if (title) {
var parts = title.split('::', 2);
el.store('tip:title', parts[0]);
el.store('tip:text', parts[1]);
}
});
var JTooltips = new Tips($$('.hasTip'), {"maxTitleChars": 50,"fixed": false});
});
jQuery(document).ready(function() {
jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
解决方案: 正如@ilias 发现的那样,这是库之间的问题。我不得不使用这个 plugin 在 header 中禁用 Bootstrap 调用并从主体的末尾调用它:
<script src="/site/media/jui/js/bootstrap.min.js" type="text/javascript"></script>
最佳答案
我不知道 Component Creator 生成的代码,但我假设工具提示与管理员 View 中的一样。如果是这种情况,你应该检查这样的东西:
<button type="submit" class="btn hasTooltip" title="<?php echo JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i class="icon-search"></i></button>
并附上JHtml::tootlipText()
的内容在 strip_tags()
.
否则尝试找到行 <strong>Title</strong><br/>Description
标签显示的位置并将其包含在 strip_tags()
中.例如,您可能有这样的东西:
echo $this->escape($item->description);
应该变成:
echo $this->escape(strip_tags($item->description));
关于javascript - Joomla 中包含 HTML 的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20752377/