有时候你可能会遇到这样一个场景:使用SweetAlert提供的开箱即用功能非常便利,但是有一些自定义的用户界面可能不仅仅需要样式按钮和文本为此,SweetAlert准备了content
参数
在上一个示例中,我们看到了如何将content
参数设置为"input"
以在我们的弹窗中生成一个<input />
元素当点击确认按钮时,其默认的返回值trye
将被替换为<input
/>
元素所输入的内容"input"
是为方便起见而存在的预定义选项,您可以将content
参数的值设置为任何的DOM节点!
让我们来看看如何重新创建以下弹窗的功能……
|
…使用自定义DOM节点!
我们将在这里使用React UI库,他可以帮助我们了解如何创建更复杂的SweetAlert您也可以使用任何其他你熟悉或所需的库,只要您可以从中提取DOM节点!
|
|
触一开始看起来或许会觉得很复杂但实际上非常简单。我们所做的只是创建一個<input />
标签作为React组件然后,我们提取其DOM节点并将其做为swal
函数中content
参数的值以将其呈现为无样式元素。
使用这种技术我们可以创建具有更多茭互式UI的模态,例如来自Facebook的这种模式
SweetAlert 2.0引入了一些重大的变化,以使库更易于使用并且更加的灵活
最重要的变化是promises
不再推荐使用回调函數,并且您不再需要导入任何外部CSS文件(因为样式现在全部捆绑在了.js文件中)
以下是一些其他已被弃用的方法及其替代方法:
swal("Hello world!")
)时,在2.0版本中该参数设置的是弹窗的文本
而在1.0中,该参数设置的是其标题
imageSize
参数,在2.0版本中您需要在CSS中指定相应的尺寸限制。如果您有特殊用例则可以为组件提供自定义的CLASS。
foo
将确认按钮上的文本设置为bar
。
confirmButtonColor
參数在2.0版本中,您应该通过CSS指定所有样式的更改作为预设的简写,您可以设置dangerMode:true
以将确认按钮变为红色或者,您可以在buttons
参数中为每一個按钮指定一个CLASS
animation
参数。在2.0版本中所有样式更改都可以通过CSS和自定义弹窗CLASS来实现。
content
对象进一步自定义內容。
【李普君的回答(44票)】: 首先解答下題主的问题: <body/onload=alert()2)>中间的「/」是 标签属性分隔符很好理解,就是把标签名「body」和属性名「onload」区分开了的东西开发者可能用的比较少,历史原因导致了很多 奇葩变规范 除了「/」还有哪些呢?
alert()1) 是一个典型的 「XSS 测试向量」用来确认一个点是否存在未转义漏洞,而 <body> 在这里是一个奇葩的存在因为通常我们的 测试载体 是插入在正文也就是 body 中,但将 body 插入 body 中又会是什么效果呢 我们用这行代码来测试下: 【瞌睡龙的回答(6票)】: 单个字符的话有一个非常简单的fuzz小腳本: 这其实是最简单的黑盒fuzz思想,如果楼主想进一步了解其中的知识的话呢推荐看一下文章,如果初学可能知识量大一些,但是如果每个点都琢磨透了都实验过,一定会大有收获!~ /替代空格同样的效果还有/**/替代空格之类的 |