我想做的是让其他人能够编写他们自己的逻辑来呈现我给他们的某些 div 元素的内容。这是一个他们可以自由添加 DOM 元素、使用自己的 CSS 进行自定义以及设计他们想要的样子的空间。
但是,当我这样做时,我遇到了 CSS 冲突和 Javascript 全局变量冲突的问题。我遇到了 shadow DOM,这是否是用于此用例的正确技术?如果是这样,您如何防止其他人在他们的影子 DOM 之外选择 DOM 元素?例如,如果他们使用 jquery 执行类似 $('body') 的操作并开始更改它。
还需要考虑的另一件事是,人们将在这个给定的 div 元素内呈现的内容依赖于从我的 Web 应用程序获取数据。一个很好的例子可能是数据流和一些未知类型的图表,它们可能由其他人设计以显示实时数据。
最佳答案
使用iframe
沙箱。您有多种选择来禁止脚本或让页面表现得像在另一个域上一样。您可以在此处找到所有选项:http://www.w3schools.com/tags/att_iframe_sandbox.asp
您的用例示例如下:
<iframe sandbox="allow-scripts" src="anotherpage.html"></iframe>
关于javascript - 是否可以防止导入的 javascript 代码修改我的 dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462826/