javascript - 是否可以防止导入的 javascript 代码修改我的 dom

标签 javascript html shadow-dom

我想做的是让其他人能够编写他们自己的逻辑来呈现我给他们的某些 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/

相关文章:

javascript - 获取当前的 <li> 号码

javascript - 通过单击位于模态 - ANGULAR 中的 <ul> 选择选项

javascript - jQuery 复杂 Accordion

html - <p> 中的换行文本更改 <div> 位置

html - 当我编辑某些内容时,Sb admin 2 菜单不会折叠

javascript - 添加/删除影子 DOM 中定义的类

javascript - 自定义元素v1中constructor和connectedCallback的区别

javascript - 固定标题和 Bootstrap Affix/Scrollspy 问题 - 未跳转到正确位置

html - 隐藏的 CSS 工具提示框

jquery - 将范围拇指扩展到相对定位的 div