如题,简单说下:
页面从某服务器获取一个列表形式的json串,然后根据json生成一排卡片,卡片上的内容就是json串里的内容,但其中不仅仅包括文本,还有一些js语句,比如点击某段文字,弹出alert或者调用某个函数。这个内容没有固定格式,完全根据返回的json串生成。
页面最上方有一个搜索框,输入字符串,下方json串里包含该内容的卡片会显示,其他的隐藏。
如题,简单说下:
页面从某服务器获取一个列表形式的json串,然后根据json生成一排卡片,卡片上的内容就是json串里的内容,但其中不仅仅包括文本,还有一些js语句,比如点击某段文字,弹出alert或者调用某个函数。这个内容没有固定格式,完全根据返回的json串生成。
页面最上方有一个搜索框,输入字符串,下方json串里包含该内容的卡片会显示,其他的隐藏。
找到办法了,稍微变通了一下,在穿过来的json字符串里加上一些data属性,然后通过v-html同级的事件来根据这些data属性执行不同的命令。
你这个问题的本质是如何使用把字符串解析为函数
可以用 `eval(x:string)`或`new Function(...args:string[])`
再或者直接在dom加上也可以(例如:`body.innerHTML = "<button onclick=\"alert('clicked')\">click me<button>"`)
最后,这种操作风险都比较高--------而且,这些百度都能查到啊…