sweet-alert display HTML code in text

前端 未结 11 1340
梦谈多话
梦谈多话 2020-12-24 01:52

I am using sweet-alert plugin to display an alert. With a classical config (defaults), everything goes OK. But when I want to add a HTML tag into the TEXT, it display

相关标签:
11条回答
  • 2020-12-24 02:32

    I just applied the patch above and it starts working.

    diff --git a/sweet-alert.js b/sweet-alert.js
    index ab6e1f1..d7eafaa 100755
    --- a/sweet-alert.js
    +++ b/sweet-alert.js
    @@ -200,7 +200,8 @@
           confirmButtonColor: '#AEDEF4',
           cancelButtonText: 'Cancel',
           imageUrl: null,
    -      imageSize: null
    +      imageSize: null,
    +      html: false
         };
     
         if (arguments[0] === undefined) {
    @@ -224,6 +225,7 @@
               return false;
             }
     
    +        params.html               = arguments[0].html;
             params.title              = arguments[0].title;
             params.text               = arguments[0].text || params.text;
             params.type               = arguments[0].type || params.type;
    @@ -477,11 +479,18 @@
             $cancelBtn = modal.querySelector('button.cancel'),
             $confirmBtn = modal.querySelector('button.confirm');
     
    +      console.log(params.html);
         // Title
    -    $title.innerHTML = escapeHtml(params.title).split("\n").join("<br>");
    +    if(params.html)
    +      $title.innerHTML = params.title.split("\n").join("<br>");
    +    else
    +      $title.innerHTML = escapeHtml(params.title).split("\n").join("<br>");
     
         // Text
    -    $text.innerHTML = escapeHtml(params.text || '').split("\n").join("<br>");
    +    if(params.html)
    +      $text.innerHTML = params.text.split("\n").join("<br>");
    +    else
    +      $text.innerHTML = escapeHtml(params.text || '').split("\n").join("<br>");
         if (params.text) {
           show($text);
         }

    0 讨论(0)
  • 2020-12-24 02:33

    A feature to allow HTML for title and text parameters has been added with a recent merge into the master branch on GitHub https://github.com/t4t5/sweetalert/commit/9c3bcc5cb75e598d6faaa37353ecd84937770f3d

    Simply use JSON configuration and set 'html' to true, eg:

    swal({ html:true, title:'<i>TITLE</i>', text:'<b>TEXT</b>'});
    

    This was merged less than a week ago and is hinted at in the README.md (html is set to false in one of the examples although not explicitly described) however it is not yet documented on the marketing page http://tristanedwards.me/sweetalert

    0 讨论(0)
  • 2020-12-24 02:35

    The SweetAlert repo seems to be unmaintained. There's a bunch of Pull Requests without any replies, the last merged pull request was on Nov 9, 2014.

    I created SweetAlert2 with HTML support in modal and some other options for customization modal window - width, padding, Esc button behavior, etc.

    Swal.fire({
      title: "<i>Title</i>", 
      html: "Testno  sporocilo za objekt: <b>test</b>",  
      confirmButtonText: "V <u>redu</u>", 
    });
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@10"></script>

    0 讨论(0)
  • 2020-12-24 02:36

    I assume that </ is not accepted inside the string.

    Try to escape the forward slash "/" by preceding it with a backward slash "\" for example:

    var hh = "<b>test<\/b>";
    
    0 讨论(0)
  • 2020-12-24 02:37

    Sweet alerts also has an 'html' option, set it to true.

    var hh = "<b>test</b>";
    swal({
        title: "" + txt + "", 
        html: true,
        text: "Testno  sporocilo za objekt " + hh + "",  
        confirmButtonText: "V redu", 
        allowOutsideClick: "true" 
    });
    
    0 讨论(0)
提交回复
热议问题