Laravel 5.3刀片是否支持<font>标签?

时间:2016-11-30 23:19:10

标签: laravel blade laravel-5.3

当我输入

<font> test </font> 
在laravel刀片文件中,没有任何内容在chrome中呈现。

编辑:请不要只是建议不要使用字体标记,请阅读整个问题。这个字体标签是由wysiwyg编辑器summernote生成的,所以不是我选择使用它。

奇怪的是,我在页面源中看到了这个标记,但它没有在页面上呈现。当我使用相同的源创建本地html文件时 - 它会在Chrome中的字体标记内显示文本。 此外,当我转到开发人员工具元素并单击容器div以编辑为html时,如果我在任何地方添加任何内容,则会突然显示所有字体标记。 Firefox中的行为完全相同。如果我不在编辑器中编辑页面,无论我刷新多少次都不显示字体标签。

这是我的刀片文件:

@extends('layouts.app')


@section('content')
    <font> test </font>
    <p> <a href="/articles"><-Back</a></p>
    <p> Selected article: {{$article->title}} </p>
    <p> Description: {{$article->description}} </p>
    <p><img src="/{{$article->image}}" width="600px" alt="ASD"></p>
    <font> ojo  </font>
    {!! $article->body !!}
    <p>ge?</p>
@stop

2 个答案:

答案 0 :(得分:1)

HTML 4.01中不推荐使用<font></font>,同时仅限与样式相关的所有元素,然后在HTML5中废弃。 这与laravel无关。

<font>元素的前一种行为可以实现,甚至可以使用CSS Fonts CSS属性更好地控制

See more information on <font> here.

修改

我的问题出错,http://summernote.org/正在生成<font>标记。您可以在每次输入summernote时替换它。像这样:

可能需要一些调整

//some dynamic elements have to be triggered from the body
$body = $(document.body);

//container where font excists
$container = $('.container')

//less code to type
function observe(element, event, handler) {
  $body.on(event, element, handler)
}

//delay 0 to speed up
function delay_func() {
  window.setTimeout(font_to_span(), 0);
}

//replace font tags with span and extract the font family
function font_to_span() {
  $font = $container.find('font');
  font_family = $font.attr('face');
  $font.replaceWith(function() {
    return $("<span />", {
      html: $(this).html(),
      style: 'font-family:' + font_family + ';'
    });
  });
}

//add events to trigger font finder_to_span on
observe($container, 'change', font_to_span);
observe($container, 'cut', delay_func);
observe($container, 'paste', delay_func);
observe($container, 'drop', delay_func);
observe($container, 'keydown', delay_func);
font_to_span();
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<div class="container">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce feugiat, sapien sed tempor dignissim, mi metus tempor enim, <font face="Comic Sans MS">a vestibulum nulla tortor</font> posuere tellus. Etiam eu dolor ut dui viverra dictum non non justo. Duis
  blandit in enim vitae mollis. Integer euismod lectus ut turpis fermentum, eget rutrum urna ornare.</div>

答案 1 :(得分:1)

我发现造成这种行为的原因,我之前应该已经意识到,如果它看起来像魔术 - 它的javascript。

因此,在基本的Laravel 5.3刀片页面中,我们在源代码中有字体标记,我们可以在前端的页面源中看到它,但它们在页面上不可见。原因是因为Laravel 5.3默认包含Vue javascript框架,包括包含Vue的app.js,它在文档加载时运行一些Vue魔法,因此字体标签因某些原因被隐藏 - 可能与被弃用有关。

我暂时从我的Laravel应用程序中删除了Vue(通过删除包含它的js代码)并返回字体标记。