问题描述
我正在使用 JQuery UI 对话框小部件 (https://api.jqueryui.com/dialog/) 的现有项目设置 CSP 指令。 使用 CSP,我不想允许使用内联样式。
遗憾的是,在调用对话框函数时,JQuery UI 会自动将内联样式应用于某些对话框元素。
我知道可以在元素加载后覆盖和清除样式属性,但这种可能的修复方法并不能阻止 CSP 警告。
有没有办法调用对话框函数完全避免内联样式指令的生成?
解决方法
如果 jQuery UI 不使用原始的 element.innerHTML = "<tag style = 'inline_styles_here'>"
方法,而是使用 attr()
函数,那就是 jQuery-csp-inline-style-fix。
还有一个 hack for setAttribute() 函数,它涵盖了 jQuery 和纯 JavaScript。