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

时间:2016-05-26 13:50:38

标签: javascript html5 shadow-dom

我想要做的是让其他人能够编写自己的逻辑来呈现我给他们的某些div元素的内容。这是一个空间,他们可以自由添加DOM元素,使用自己的CSS进行自定义,然后设计他们希望它看起来像。

然而,当我这样做时,我遇到了CSS冲突和Javascript全局变量冲突的问题。我遇到了影子DOM,这是否是适用于此用例的正确技术?如果是这样,你如何阻止他人在他们的影子DOM之外选择DOM元素?例如,如果他们使用jquery执行类似$('body')的操作并开始更改它。

另外要考虑的另一件事是人们将在这个给定的div元素内部渲染依赖于从我的Web应用程序获取数据。一个很好的例子可能是数据流和一些未知类型的图表,他们可能会设计这些图表以显示实时数据。

2 个答案:

答案 0 :(得分:3)

使用iframe沙箱。您有几个选项可以禁止脚本或让页面像在另一个域上一样。您可以在此处找到所有选项:http://www.w3schools.com/tags/att_iframe_sandbox.asp

您的用例的示例是: <iframe sandbox="allow-scripts" src="anotherpage.html"></iframe>

答案 1 :(得分:0)

如果您不想将iframesandbox属性一起使用,则排序答案为。这是不可能的。

JavaScript在窗口内运行,并且可以完全访问窗口中的文档。您可以尝试修改某些功能,但无法以正确的方式执行此操作。

只需使用iframe即可。